我有两个data.tables,X(3m行,约500列)和Y(100行,两列)。
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中?
撒科打诨
呼如林