如何绑定一个数据表和一个向量

时间:2019-06-19 14:03:44

标签: r data.table

我想将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)

1 个答案:

答案 0 :(得分:7)

data.table中,您可以将值分配给向量中指定的多个列。使用这种方法,您的答案很简单,如下所示:

DT[,(DT2) := 0]

要注意的一个区别是:即使DT2是有效的向量,DT[, DT2 := 0]也会简单地产生一个名为DT2的新列。这与在[...]中评估列名的方式有关。通过在括号内使用括号(DT2)[.data.table将在这种情况下将DT2视为向量,而不是列名。