У меня есть фрейм данных для нескольких дат, который включает в себя фактор регистрации имен (reg) с уровнями, значениями и датами
Reg Values date
<fctr> <dbl> <fctr>
1 7 2018-02-01
3 10 2018-02-01
5 15 2018-02-01
1 16 2018-02-01
1 12 2018-02-02
2 5 2018-02-02
3 6 2018-02-02
И я хочу выбрать все значения для 2 случайных уровней для каждой даты.
Я составил список фреймов данных для каждой даты
df_list <- split(df, as.factor(df$date))
создаю функцию и использую lapply для циклического перебора всего фрейма данных
rando <- (function (x){
subset(x,reg %in% sample(levels(x$reg), 2, replace = TRUE))
}
Result <- lapply(df_list, rando)
Это работает,но выбирайте случайные уровни из всех дат, а не конкретной даты.В результате иногда алгоритм выбирает уровни Reg, которые не представлены в определенном кадре данных.
Желаемый результат
Reg Values date
<fctr> <dbl> <fctr>
1 7 2018-02-01
5 15 2018-02-01
1 16 2018-02-01
2 5 2018-02-02
3 6 2018-02-02
Можете ли вы объяснить, как выбирать уровни только внутри каждого df из списка?