Предположим, у меня есть пример набора данных, который выглядит следующим образом:
df = data.table(id = 1:100,group=rep(c('a','b','c','d'),25))
Я бы хотел взять, скажем, 80 наблюдений из этого набора в x неперекрывающихся выборках.Важной особенностью является то, что распределение каждого образца должно быть равномерным среди каждой группы.
Например:
x=20 will give a first sample of
1 a
5 b
15 c
28 d
Это очень удобный пример, но он также должен быть применим к менее удобномуслучаи (например, когда x = 7).
Моя первая попытка использовала split , например:
df_split = split(df, as.numeric(as.factor(df$id)) %% 7)
, которая делает то, что я хочу, кроме того, что делаетнеравномерно выбирать из каждой группы!