从数据框或矩阵中随机抽样连续的行

Eri*_*lez 6 r sample matrix dataframe

我想从数据框中采样一些连续的行df.

df <- data.frame(C1 = c(1, 2, 4, 7, 9), C2 = c(2, 4, 6, 8, 10))
Run Code Online (Sandbox Code Playgroud)

我试图获得类似于以下内容的东西,这允许我对3个随机行进行采样并重复该过程100次.

test <- replicate(100, df[sample(1:nrow(df), 3, replace=T),], simplify=F)
Run Code Online (Sandbox Code Playgroud)

通过连续,结果应该是这样的:

 [[1]]  
           C1 C2
   2       2  4
   3       4  6
   4       7  8

 [[2]]
           C1 C2
   1       1  2
   2       2  4
   3       4  6

   .
   .
   .
Run Code Online (Sandbox Code Playgroud)

我怎么能实现这个目标?

李哲源*_*李哲源 6

我们只需要对块的起始行索引进行采样.

sample.block <- function (DF, chunk.size) {
  if (chunk.size > nrow(DF)) return(NULL)
  start <- sample.int(nrow(DF) - chunk.size + 1, 1)
  DF[start:(start + chunk.size - 1), ]
  }

replicate(100, sample.block(df, 3), simplify = FALSE)
Run Code Online (Sandbox Code Playgroud)