我正在尝试编写一个函数,它为 very 简单数据帧提供了三条连续的行。真正的数据帧非常长,但这里更简单:
structure(list(simple = structure(1:5, .Label = c("aa", "bb",
"cc", "dd", "ee"), class = "factor")), .Names = "simple", row.names = c(NA,
-5L), class = "data.frame")
现在,使用dplyr
:
myrandomrows <- sample_n(df, 3)
如何将行样本连续进行?
修改 我希望生成数据完整的连续行,如下所示:
1 aa
2 bb
3 cc
答案 0 :(得分:2)
只需sample
一行,然后选择下一行以使其连续
sample(1:nrow(df), 1) + 0:2
所以,如果
sample(1:nrow(df), 1) #returns
#[1] 3
sample(1:nrow(df), 1) + 0:2 # would return
#[1] 3 4 5
您可以使用这些索引对数据框进行子集化。
df[sample(1:nrow(df), 1) + 0:2, ]
当索引值超出行号时,请处理边缘情况。