我有以下数据表。
ts,id
1,a
2,a
3,a
4,a
5,a
6,a
7,a
1,b
2,b
3,b
4,b
我想将此 data.table 分成两个子集。标准是每个组的前半部分(在本例中为“id”列)在一个数据表中,其余部分在另一个 data.table 中。所以预期的结果是两个data.tables如下
ts,id
1,a
2,a
3,a
4,a
1,b
2,b
和
ts,id
5,a
6,a
7,a
3,b
4,b
我尝试了以下,
z1 = x[,.SD[.I < .N/2,],by=dev]
z1
并得到以下
id ts
a 1
a 2
a 3
不知何故,.SD 中的 .I 并没有按照我认为的方式工作。任何帮助表示赞赏。提前致谢。