data.table子集索引

时间:2016-03-12 16:12:13

标签: r data.table

在R中使用data.table包,我试图获取某些数据点的“组号”。 具体来说,我的数据是轨迹:我有很多行描述我正在跟踪的粒子的特定观察,我想根据我拥有的其他识别信息生成轨迹的特定索引。 如果我执行[, , 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) - 我的实际数据集中等。

1 个答案:

答案 0 :(得分:3)

如果我们需要基于'x2'的P(X) = P(smoker)* (P(being a man | smoker)/P(being a man))* (P(under 20 | smoker)/ P(under 20)) (不知道这意味着什么),我们可以使用trajectories

rleid

或者如果我们需要基于'x1'和'x2'的组号,可以使用dt[, Grp := rleid(x2)]

.GRP

或者可以单独使用dt[, Grp := .GRP,.(x1, x2)] 而不使用rleid(如提及@Frank)

by