2017-07-26 3 views
2

私は空白DatFrameの列名を名前にしたいです。ジュリアデータフレームの列名

私がv0.6にデータフレームの複数の列に名前を付ける(再)問題を抱えています。

私が試した生成名:

df = DataFrame() 
nms = [":x$i" for i in 1:2] 
df[nms[1] = rand(10)] 
df[nms[2] = rand(10)] 

が、名前のシンボル要件はマクロ$で作業されていません。誰にも修正がありますか?

答えて

4
df = DataFrame() 
nms = [Symbol("x$i") for i in 1:2] 
df[nms[1]] = rand(10) 
df[nms[2]] = rand(10) 

は、問題のコードと最も類似しています。キーは、ストリングではなく、ジュリアシンボルでデータフレームをインデックスすることです。 dfパラメータとして列を取るデータフレームコンストラクタを使用して作成する

よりコンパクト方法。そこ1ですが、パラメータを挿入する(すなわち...)Dictのをスプラットする必要があるので、パラメータは、名前付きパラメータです。 Dict自体はプログラムで生成する必要があります。辞書です内の列の特定の順序を維持するために、あなたはOrderedDictを必要としています。結果は次のとおりです。

using DataFrames, DataStructures 

df = DataFrame(;OrderedDict((Symbol("x$i")=>rand(10) for i=1:3)...)...)