【发布时间】:2017-06-26 18:00:12
【问题描述】:
我有一个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)
什么是正确的语法?
【问题讨论】:
-
追加是什么意思?
b:=b+2有效。b := paste(b,2, sep = "")工作。 -
我需要
b中的条目成为向量c(1,2)。 -
将该列初始化为列表并进行赋值:
dt <- data.table(a = 1, b = list(1), c = 1); dt[[1,2]] <- c(dt[[1,2]],2) -
这可行,但我需要通过列
a中的元素引用行。
标签: r data.table