这可能是一个愚蠢的问题。但我想在每组数据之前插入一个角色。我在网上找到的就是如何在每组之后插入一行。此外,插入的行将具有表示每个ID的序列号。 例如,我有一个像
这样的数据表df
ID TIME VAR VALUE
101 07/02 V1 9
101 07/03 V2 NA
101 07/03 V3 10
221 06/01 V1 2
221 07/03 V2 4
我想要类似的东西:
ID TIME VAR VALUE
101 NA sequence 1
101 07/02 V1 9
101 07/03 V2 NA
101 07/03 V3 10
221 NA sequence 2
221 06/01 V1 2
221 07/03 V2 4
真实表有大约1400万行,有14,000个唯一ID。有更新表的快速方法吗?谢谢!
答案 0 :(得分:0)
可能会更快,因为它是散装的rbind:
> tbl[, .SD
][, .N, ID
][, VALUE := .I
][, VAR := 'sequence'
][, N := NULL
][, rbind(.SD, tbl, fill=T)
][order(ID, VAR != 'sequence', TIME)
][, .(ID, TIME, VAR, VALUE)
]
ID TIME VAR VALUE
1: 101 NA sequence 1
2: 101 07/02 V1 9
3: 101 07/03 V2 NA
4: 101 07/03 V3 10
5: 221 NA sequence 2
6: 221 06/01 V1 2
7: 221 07/03 V2 4
>