Я получил вот такой фрейм данных:
Завод | Хлеб |
---|---|
А | а |
А | а |
Б | с |
Б | б |
В | д |
С | а |
Д | е |
Я хочу найти название фабрики с наибольшим количеством хлеба
Я написал два кода и получил разные ответы.
1.
df %>%
group_by(factory, bread)%>%
summarise(n = n())%>%
arrange(desc(n))
df %>%
group_by(factory) %>%
mutate(number = length(unique(bread)))%>%
arrange(desc(number))
Могу ли я спросить, какой из них правильный и почему?
Спасибо!!!!
Вы хотите
df %>% group_by(factory) %>% summarise(n = n_distinct(bread))
Оно работает!!!! но теперь я получил три разных результата по этому вопросу. Могу я спросить, есть ли проблемы с кодом, который я написал ранее?
Ваш второй код похож на мой, то есть
length(unique
— этоn_distinct
, но вы создали его как столбец сmutate
, где, как я резюмировал, с одной строкой на группу. Первый код в вашем сообщении в основном дает количество каждой комбинации.