数据集如:
ID week
1 2
1 3
1 4
1 5
1 6
1 7
2 10
2 11
2 12
2 13
2 14
3 13
3 14
3 15
3 16
3 17
3 18
3 19
3 20
3 21
3 22
每个ID都有不同的开始周。我想为R中的每个ID连续选择连续3周,输出就像
ID week
1 4
1 5
1 6
2 14
2 15
2 16
3 20
3 21
3 22
有没有更快的实现呢?谢谢
答案 0 :(得分:0)
以下是data.table
library(data.table)
setDT(df1)[df1[, if(.N < 4) .I[1:.N] else {
i1 <- .I[sample(.N-2, 1)]
i1:(i1+2) } , by = ID]$V1]