data.tableを使用して完全なデカルト結合をしようとしていますが、ほとんど運がありません。デカルトのdata.tableへの結合
コード:
a = data.table(dt=c(20131017,20131018))
setkey(a,dt)
b = data.table(ticker=c("ABC","DEF","XYZ"),ind=c("MISC1","MISC2","MISC3"))
setkey(b,ticker)
予想される出力:私はそれはエラー以下の私を与えるが、merge(a,b,allow.cartesian=TRUE)
を試してみました
merge(data.frame(a),data.frame(b),all.x=TRUE,all.y=TRUE)
- "Error in merge.data.table(a, b, allow.cartesian = TRUE) : A non-empty vector of column names for
is required.
による"
"R version 3.0.1 (2013-05-16)
"と最新のdata.table
パッケージを使用しています。どんな助けでも大歓迎です! @Codoremifaに拡大
よろしく
これは、より多くの 'expand.grid'のような問題のような' merge'-問題よりも見えます。あなたは共通の変数がありません。 –
必要な出力は、マージ関数を使用したデカルト結合によって実現されますが、data.frameで動作します。可能であればdata.tableソリューションを探しています。 – Manoj
私は通常、ダミー変数を追加し、その変数でマージし、 'allow.cartesian = TRUE'を持っています。 'CJ'と' expand.grid'はベクトルを交差することができますが、2つのテーブルのクロス結合を作成するための基本関数を見つけることはできません。もし誰かがそのような関数を指しているのであれば、それを指すことができますか? – TheComeOnMan