我正在寻找一种从计算得出的较小data.tables中填充 Result data.table的方法。 我的方法如下:
#CREATE EXAMPLE
library(data.table)
# The empty table to be filled
DT <- data.table(
"ID" = c("a","b","c","d"),"A" = numeric(4),"B" = numeric(4))
ID A B
1: a 0 0
2: b 0 0
3: c 0 0
4: d 0 0
# Table with part of the results
DT_short <- data.table(
"ID" = c("a","A" = 1:3,"B" = 1:3)
ID A B
1: a 1 1
2: b 2 2
3: d 3 3
我想做的是根据行和列的名称填充它们。 我设法访问了要更改的大数据表部分。
nm1 <- names(DT_short)
DT[ID %in% DT_short[,ID],..nm1]
#Bonus question: Why do I have to assign nm1 before,how do I make it work directly in []?
现在,我想用小表DT
来代替DT_short
的这一部分,但是我尝试了一切(例如<-
或:=
或某种{ {1}}无效。例如。 merge
的错误object '..nm1' not found
请提供解决方案或向正确的方向指点我。 (由于我正在使用的数据相当小-10 ^ 2列,10 ^ 2行,〜40个要合并的小文件,每个字段个数
编辑
回应罗纳克·沙(Ronak Shah)。当我用下面的代码测试您的解决方案时,它可以很好地工作,没有任何错误/警告。在接受解决方案之前,我想确保它也适用于其他人/知道为什么它会对您而不是我造成警告。
DT[ID %in% DT_short[,..nm1] <- DT_short