矢量作为`data.table`中的条目

时间:2017-06-26 18:00:13

标签: r data.table

我的data.table看起来像这样:

dt <- data.table(a = 1, b = 1, c = 1)

我需要将列b视为可变长度的整数向量,因此我可以向其追加其他元素。例如,我想在第一行中将2添加到列b。我试过了

dt[a == 1, b := c(b, 2)]

但这不起作用。它给了我一个警告:

Warning message:
In `[.data.table`(dt, a == 1, `:=`(b, c(b, 2))) :
  Supplied 2 items to be assigned to 1 items of column 'b' (1 unused)

这个的正确语法是什么?

1 个答案:

答案 0 :(得分:3)

dt <- data.table(a = 1, b = 1:3, c = 1)
dt[, b := .(lapply(b, c, 2))][]
#   a   b c
#1: 1 1,2 1
#2: 1 2,2 1
#3: 1 3,2 1

如果要求首先转换为list(即,尚未转换为list,并进行子集化或执行by),请在上述之前添加dt[, b := .(as.list(b))]