Я пытаюсь получить 2 первых имени, отсортированных в алфавитном порядке для каждой группы. Я бы подумал, что top_n()
выберет это после того, как я выполню group_by. Однако, похоже, это не так. Этот код показывает проблему.
df <- data.frame(Group = c(0, 0, 0, 1, 1, 1),
Name = c("a", "c", "b", "e", "d", "f"))
df <- df %>%
arrange(Name, Group) %>%
group_by(Group) %>%
top_n(2)
df
# A tibble: 2 x 2
# Groups: Group [1]
Group Name
<dbl> <chr>
1 1 e
2 1 f
Ожидаемый результат будет:
df <- df %>%
arrange(Name, Group) %>%
group_by(Group) %>%
top_n(2)
df
Group Name
1 0 a
2 0 b
3 1 d
4 1 e
Или что-то подобное. Спасибо.