我想将data.table和vector绑定在一起,以使矢量内容成为data.table的新列,且值为零。
DT <- data.table(x=c("A", "B", "C", "D", "E", "F"), y = rnorm(6))
DT2 <- c("paper11grid1", "paper12grid1", "paper13grid1")
我想将DT2的内容更新为DT的新列名
x y paper11grid1 paper12grid1 paper13grid1
A 0.9643131 0 0 0
B -0.8856350 0 0 0
C -0.1489705 0 0 0
D 2.0675105 0 0 0
E -1.2965938 0 0 0
F -0.8468514 0 0 0
直接绑定只会将DT2添加为一个列
cbind(DT, DT2)
答案 0 :(得分:7)
在data.table
中,您可以将值分配给向量中指定的多个列。使用这种方法,您的答案很简单,如下所示:
DT[,(DT2) := 0]
要注意的一个区别是:即使DT2
是有效的向量,DT[, DT2 := 0]
也会简单地产生一个名为DT2
的新列。这与在[...]
中评估列名的方式有关。通过在括号内使用括号(DT2)
,[.data.table
将在这种情况下将DT2
视为向量,而不是列名。