I am trying to create a (touple) → value dictionary out of a 2d arrays table of values and a 1d array of keys.
This code (not mine) works…
using DataArrays, DataFrames
# This works....
orig = ["Epinal", "Bordeaux", "Grenoble"]
prod = ["Fuelwood", "Sawnwood", "Pannels"]
supplytable = wsv"""
prod Epinal Bordeaux Grenoble
Fuelwood 400 700 800
Sawnwood 800 1600 1800
Pannels 200 300 300
"""
supply = Dict( (r[:prod],o) => r[Symbol(o)] for r in eachrow(supplytable), o in orig)
This however doesn’t work (“LoadError: ArgumentError: Dict(kv): kv needs to be an iterator of tuples or pairs”):
# This doesn't work...
s = ["Chêne pédonculé", "Chêne sessile", "Hêtre", "Pin sylvestre"]
σtable = [[0.037502535947712 0.016082745098039 0.027797176470588 -0.025589882352942]
[0.016082745098039 0.015177019607843 0.018791960784314 -0.102880470588234]
[0.027797176470588 0.018791960784314 0.031732078431373 -0.166391058823529]
[-0.025589882352942 -0.102880470588234 -0.166391058823529 2.02950454411765]]
σ = Dict( (i,j) => σtable[i,j] for i in s, j in s)
What’s the difference ??
I’m sure I can find alternatives, but I am curious why it doesn’t work, as I tried to mimic the above code that works…