Из этих вопросов - Случайная выборка строк из подмножества кадра данных R и Примеры случайных строк в dataframe Я легко вижу, как случайным образом выбирать (выбирать) "n" строки из строк df или "n", которые исходят из определенного уровня фактора в пределах df.
Вот несколько примеров данных:
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.
К примеру. просто выберите 3 случайных строки из "розового" цвета - используя library(kimisc)
:
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) случайные строки с каждого уровня фактора. То есть новый df будет иметь 12 строк (3 от синего, 3 от красного, 3 от желтого, 3 от розового). Очевидно, что можно запускать это несколько раз, создавать newdfs для каждого цвета, а затем связывать их вместе, но я ищу более простое решение.