data.tables
X (3m 行× 500 列) と Y (100 行× 2 列) の 2 つがあります 。
set.seed(1)
X <- data.table( a=letters, b=letters, c=letters, g=sample(c(1:5,7),length(letters),replace=TRUE), key="g" )
Y <- data.table( z=runif(6), g=1:6, key="g" )
X で左外部結合を実行したいのですが、次のY[X]
おかげで実行できます。
data.tables の X[Y] 結合で完全外部結合または左結合が許可されないのはなぜですか?
しかし、コピーX
せずに新しい列を追加したいX
(巨大なので)。
明らかに、 のようなものはX <- Y[X]
機能しますが、私が認めるよりもはるかに賢い場合を除いdata.table
て (そして、私はかなりの悪意を認めています!)、これは の全体をコピーすると信じていX
ます。
X[ , z:= Y[X,z]$z ]
動作しますが、扱いにくく、複数の列にうまくスケーリングできません。
マージの結果を保持された data.table に効率的に (コピーの観点からもプログラマーの時間の観点からも) 保存するにはどうすればよいですか?