Может быть неправильное понимание того, как работает group_by. От? Group_by:
> ?group_by
Most data operations are done on groups defined by variables. group_by() takes
an existing tbl and converts it into a grouped tbl where operations are
performed "by group" [...] grouping doesn't change how the data looks [...]
It changes how it acts with the other dplyr verbs.
Из того, что я могу собрать, вы ищете количество тех же рейсов, которые> 1 для перевозчика США. Один Group_by не может быть лучшим вариантом. Group_by полезен при применении операции на уровне группы, такой как поиск среднего времени задержки:
> flights %>% group_by(carrier) %>% na.omit(.) %>%
summarise(mean = mean(dep_delay))
# A tibble: 16 x 2
carrier mean
<chr> <dbl>
1 9E 16.4
2 AA 8.57
3 AS 5.83
....
Однако group_by не изменяет и не агрегирует ваши данные.
> flights
# A tibble: 336,776 x 20
year month day dep_time sched_dep_time dep_delay
<int> <int> <int> <int> <int> <dbl>
1 2013 1 1 517 515 2.00
2 2013 1 1 533 529 4.00
flights %>% group_by(carrier)
A tibble: 336,776 x 20 ...
Обратите внимание, что агрегирование не было выполнено, и таблица содержит такое же количество наблюдений. Как и подразумевали другие в комментариях, вам может потребоваться решить, какие функции вы хотите агрегировать, и посмотреть на другие функции агрегирования, чтобы помочь. Ниже приведен пример, который использует функции «таблица» для создания таблицы частот по «dest» и «origin» для несущей «US». Обратите внимание, что group_by не использовался.
> flights %>% select(dest,carrier,origin) %>% filter(carrier == "US") %>%
table(.) %>% as_tibble(.) %>% filter(n > 1)
# A tibble: 9 x 4
dest carrier origin n
<chr> <chr> <chr> <int>
1 CLT US EWR 3232
2 PHX US EWR 1172