如何使用data.table

时间:2018-09-26 07:58:06

标签: r data.table

说我有这样一个数据表:

DT <- data.table(id = c(1, 1, 1, 2, 3, 4, 4, 4, 5, 5, 5, 5, 5, 6),
       group = c(1, 4, 2, 4, 3, 1, 1, 1, 2, 2, 3, 4, 4, 3), 
       group_1 = rep(0, 14),
       group_2 = rep(0, 14),
       group_3 = rep(0, 14),
       group_4 = rep(0, 14))

我想在组变量匹配的每个group_x变量中添加1。我希望group_1等于1的任何行中的group_1中都为1。我可以很容易地用四行代码来做到这一点:

DT[group == 1, group_1 := 1]
DT[group == 2, group_2 := 1]
DT[group == 3, group_3 := 1]
DT[group == 4, group_4 := 1]

但是在实践中,我有一个非常大的数据集和许多组,我想要一种更整洁(希望更有效)的方式来仅用一行。我已经尝试过以下方法:

DT[,eval(paste0("group_", group)) := 1]

但是我只是收到一条错误消息,提示未找到对象“ group”。这是一个非常耗费资源/时间的过程,因此非常希望能帮助您加快速度。

0 个答案:

没有答案