子集的数据表索引

mbarete

使用data.tableR中的程序包,我试图获取某些数据点的“组号”。具体来说,我的数据是轨迹:我有很多行描述了我正在跟踪的粒子的特定观察结果,并且我想基于我拥有的其他标识信息为该轨迹生成特定的索引。如果执行[, , by]命令,则可以根据此标识信息对数据进行分组,并隔离每个轨迹。有没有一种类似于.I的方式.N给出我称为子集索引的方式?

这是玩具数据的示例:

dt <- data.table(x1 = c(rep(1,4), rep(2,4)),
x2 = c(1,1,2,2,1,1,2,2),
z = runif(8))

我需要一种快速获得轨迹的方法(这里应该c(1,1,2,2,3,3,4,4)针对每个观察值-我的真实数据集适中。

阿克伦

如果我们需要trajectories基于'x2'(不要意思),我们可以使用rleid

dt[, Grp := rleid(x2)]

或者,如果我们需要基于“ x1”和“ x2”的组号,.GRP则可以使用。

dt[,  Grp := .GRP,.(x1, x2)]

或者可以单独使用rleid而无需使用by(如@Frank所述)

dt[, Grp := rleid(x1,x2)]

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章