Как подсчитать количество вхождений в столбец с помощью dplyr

#r #dplyr #grouping

#r #dplyr #группировка

Вопрос:

Я пытаюсь подсчитать количество вхождений в одном столбце. Вот фрагмент df, с которым я работаю: введите описание изображения здесь

Вот код, который у меня есть на данный момент:

 my_df$day <- weekdays(as.Date(my_df$deadline))
most_common_day <- my_df %>%
arrange(day) %>%
filter(day == "Friday") %>%
select(day)
  

Итак, основная цель — определить, какой день недели является наиболее распространенным. Есть предложения?

Ответ №1:

Существуют различные способы подсчета количества вхождений в R. Основной метод R table() :

 table(my_df$day)
#   Friday    Monday  Saturday    Sunday  Thursday   Tuesday Wednesday 
#        4         6         8        11         6         5        10
  

Подход dplyr может быть с count() :

 count(my_df, day)
#        day  n
#1    Friday  4
#2    Monday  6
#3  Saturday  8
#4    Sunday 11
#5  Thursday  6
#6   Tuesday  5
#7 Wednesday 10
  

Вы также можете использовать tally() from dplyr, но вам также понадобится group_by() :

 my_df %>% group_by(day) %>% tally
#        day  n
#1    Friday  4
#2    Monday  6
#3  Saturday  8
#4    Sunday 11
#5  Thursday  6
#6   Tuesday  5
#7 Wednesday 10
  

Чтобы получить наиболее распространенные дни, вы можете сделать:

 # when using table()
names(table(my_df$day))[table(my_df$day) == max(table(my_df$day))]
#[1] "Sunday"

# when using count()
count(my_df, day) %>% slice_max(n)
#     day  n
#1 Sunday 11


# when using tally()
my_df %>% group_by(day) %>% tally %>% slice_max(n)
## A tibble: 1 x 2
#  day        n
#  <fct>  <int>
#1 Sunday    11
  

Комментарии:

1. Спасибо! Используя Tally, так как я хочу ознакомиться с Dplyr