【发布时间】:2019-09-18 14:40:33
【问题描述】:
我的问题远非复杂,但我没有在网上找到答案。简单来说,我想知道如何创建一个新列并向其中添加一个 seq() 。问题是我不知道需要的重复次数。我知道您可以指定 rep 参数,但如果您事先不知道数据是什么怎么办?有没有办法用 data.table 做到这一点? :
data <- data[, new.col := seq(1,3,1)]
这在逻辑上返回给我以下错误:
[.data.table(data, , :=(new.col, seq(1, 3, 1))) 中的错误:
提供 3 项分配给列 'new.col' 的 13502 项。 RHS 长度必须为 1(单个值即可)或匹配 LHS 长度正好。如果您想“回收”RHS,请使用 rep() 明确地向您的代码的读者表明这一意图。
这是我目前拥有的数据和我想要的输出的示例:
current data
id sexe
109 F
100 F
157 M
151 M
160 M
168 M
desired output
id sexe new.col
109 F 1
100 F 2
157 M 3
151 M 1
160 M 2
168 M 3
我知道它会起作用,但我不想指定 seq() 需要的 rep 数量。
谢谢。
【问题讨论】:
标签: r data.table