Получил его сортировку, cron-jobs не запускаются на локальной машине. Когда я развернул его на сервере (aws в моем случае), задания начали запускаться.
Вам не нужно inner_join()
Я бы просто определил два лучших экзамена в отдельном утверждении, а затем отфильтровал их.
top_exams <- count(ap, examName) %>%
top_n(2, n) %>% pull(examName)
ap %>%
filter(examName %in% top_exams) %>%
count(year, examName) %>%
ggplot(aes(x = year, y = n, group = examName)) +
geom_line() +
facet_wrap(~ examName)
Еще одна возможность:
ap %>%
group_by(examName) %>%
mutate(temp = n()) %>%
ungroup() %>%
mutate(temp = dense_rank(desc(temp))) %>%
filter(temp %in% c(1,2)) %>%
select(-temp) %>%
count(year, examName) %>%
ggplot(aes(x = year, y = n, group = examName)) +
geom_line() +
facet_wrap(~ examName)
Он подсчитывает количество случаев по «examName» и ранжирует количество. Затем он фильтрует случаи с наибольшим и вторым наибольшим числом.