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