随机从R中不同ID的不同起始周连续选择一周

  • 本文关键字:连续 一周 周连续 选择 ID 随机
  • 更新时间 :
  • 英文 :


数据集如下:

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

有更快的实现它吗?由于

这是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]

最新更新