У меня есть фрейм данных, например:
set.seed(1)
df <- data.frame(
sample = 1:50,
value = runif(50),
group = c(rep(NA, 20), gl(3, 10)))
Я хочу выбрать 10 лучших выборок на основе значения.Однако, если есть группа, соответствующая образцу, я хочу включить только один образец из этой группы.Если группа == NA, я хочу включить все из них.Расположение df по значению выглядит следующим образом:
df_top <- df %>%
arrange(-value) %>%
top_n(10, value)
sample value group
1 46 0.7973088 3
2 49 0.8108702 3
3 22 0.8394404 1
4 2 0.8612095 NA
5 27 0.8643395 1
6 20 0.8753213 NA
7 44 0.8762692 3
8 26 0.8921983 1
9 11 0.9128759 NA
10 30 0.9606180 1
Я бы хотел включить в мой кадр данных сэмплы 36, 22, 2, 20, 11 и следующие пять самых высоких значений, которые продолжают соответствовать шаблону.Как мне это сделать?