用一个变量作为中断变量计算 nr 个观察值

Count nr of observations with one variable as break variable

我想根据 ID 变量

中的观察次数来计算 Sessions 的 nr

这里是变量

ID <- c(1,1,2,2,2,3,3,3,3)
Days <- c(0,5,0,5,10,0,5,10,15)
Sessions <- c(1,2,1,2,3,1,2,3,4)

这是我的数据:

Have <- data.table(ID,Days)
Have
ID Days
1    0
1    5
2    0
2    5
2   10
3    0
3    5
3   10
3   15

以下是我要获取的数据:

Whant <- data.table(ID,Days,Sessions)
Whant
ID Days Sessions
1    0       1
1    5       2
2    0       1
2    5       2
2   10       3
3    0       1
3    5       2
3   10       3
3   15       4

如果有人能帮助我,非常感谢。这是一个很棒的论坛!

我们按 'ID' 分组,并创建 'Sessions' 作为行序列 (1:.N)。

Have[, Sessions:= 1:.N, ID]

或者我们可以使用来自 library(splitstackshape)

的包装器 (getanID)
library(splitstackshape)
getanID(Have, 'ID')[]