从这些问题中 - R数据框中子集的随机行样本 & 在R数据框中抽样随机行 我可以轻松地看到如何从df中随机抽取(选择)'n'行,或者从df中特定级别的因子中随机抽取 'n'行。
以下是一些示例数据:
df <- data.frame(matrix(rnorm(80), nrow=40))
df$color <- rep(c("blue", "red", "yellow", "pink"), each=10)
df[sample(nrow(df), 3), ] #samples 3 random rows from df, without replacement.
使用 library(kimisc)
从 'pink' 颜色中随机抽取3行数据示例如下:
library(kimisc)
sample.rows(subset(df, color == "pink"), 3)
或编写自定义函数:
sample.df <- function(df, n) df[sample(nrow(df), n), , drop = FALSE]
sample.df(subset(df, color == "pink"), 3)
然而,我想从因子的每个水平中随机选取3(或n)行进行样本。即新的数据框将有12行(蓝色3行,红色3行,黄色3行,粉色3行)。显然可以运行多次此操作,为每个颜色创建新的数据框,然后将它们绑定在一起,但我正在寻找一个更简单的解决方案。
data.table
中对每个组进行随机行抽样? - Henrik