我希望在一个 data.table
中仅分配每个组中第一行的值。
例如(简化):我的data.table
是 DT
,其内容如下:
x v
1 1
2 2
2 3
3 4
3 5
3 6
DT
的key
是x
。
我想要处理每一组的第一行。
这个是有效的:DT[, .SD[1], by=x]
x v
1 1
2 2
3 4
现在,我想将变量v
的值赋为0
。
但是这些方法都没有成功:
DT[, .SD[1], by=x]$v <- 0
DT[, .SD[1], by=x]$v := 0
DT[, .SD[1], by=x, v:=0]
我在包中搜索了R-help和任何提供的链接,但我就是无法使其工作。
那里有笔记说明这不起作用,但没有任何帮助我的示例/解决方案。
如果有任何建议,我将非常高兴。
(我非常喜欢这个包,我不想回到使用data.frame的状态...在那里我可以让它工作)
编辑:
我想要像这样的结果:
x v
1 0
2 0
2 3
3 0
3 5
3 6
这不起作用:
DT[, .SD[1], by=x] <- DT[, .SD[1], by=x][, v:=0]
data.table
。 - MDS