R 子集的数据表索引
使用R中的R 子集的数据表索引,r,data.table,R,Data.table,使用R中的data.tablepackage,我试图获得一些数据点的“组号”。 具体来说,我的数据是轨迹:我有许多行描述我正在跟踪的粒子的特定观测,我想根据我拥有的其他识别信息为轨迹生成特定索引。 如果我执行[,by]命令,我可以根据此标识信息对数据进行分组,并隔离每条轨迹。 是否有一种类似于.I或.N的方法,可以给出我所称的子集索引 以下是一个玩具数据示例: dt <- data.table(x1 = c(rep(1,4), rep(2,4)), x2 = c(1,1,2,2,1,1,2
data.table
package,我试图获得一些数据点的“组号”。
具体来说,我的数据是轨迹:我有许多行描述我正在跟踪的粒子的特定观测,我想根据我拥有的其他识别信息为轨迹生成特定索引。
如果我执行[,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))
dt如果我们需要基于“x2”的轨迹(不知道这是什么意思),我们可以使用rleid
dt[, Grp := rleid(x2)]
或者,如果我们需要基于“x1”和“x2”的组号,则可以使用.GRP
dt[, Grp := .GRP,.(x1, x2)]
或者可以单独使用rleid
,而不使用by
(如@Frank所述)
.GRP
对我来说可能更直观,但两者都有效
dt[, Grp := rleid(x1,x2)]