使用连接有效地将列添加到data.table

时间:2015-11-16 21:17:45

标签: r data.table

我有两个data.tables DT1DT2。我想执行DT1 = DT1[DT2]而不复制data.table。

更具体地说,我正在尝试通过添加匹配的DT1中的列来更新DT2的子集。没有匹配的行的默认输出NA非常好(我想保留DT1的所有行)。如果我使用相同的键正确地命令两个data.tables,DT1[DT2,c("col1","col2"):=list(DT2$col1,DT2$col2)]有效(在我看过的情况下:即没有重复),但是对于许多列来说会变得乏味。

有一种简单的方法吗?

merge-like scenario with two data.tables地址添加单个列而Merging two data.tables with many to one realtionship in R?无法解决内存效率问题。)

示例:

dt = data.table(col1 = 1:3)
dt2 = data.table(col1 = 2:5,col2 = 3:6,col3=c("a","b","c","d"))
setkey(dt,col1)
setkey(dt2,col1)

加入dtdt2,将col2和col3添加到dt,而不复制dt。

0 个答案:

没有答案