如何在使用 dplyr 包中的 count() 之前进行分组

How to group by before using count() from the dplyr package

原始数据框

route   user_type 
A       member  
A       casual 
A       member
A       member 
A       member  
B       member  
B       casual 
B       member
C       member
C       member

需要新数据框

route  user_type  count_user_type
A      member     4
A      casual     1
B      member     2
B      casual     1
C      member     2

我想制作一个新的数据框,这样我就可以制作一个条形图,其中 Y 轴为路线名称,X 轴为 count_user_type(由 user_type 填充),我使用了 plyr 包中的 count(dataframe, route) 但它给了我以下结果

route frequency
A     5    
B     3
C     2
library(dplyr)    
df %>% group_by(route, user_type) %>% 
      summarise(count_user_type= n())

您可以使用以下代码:

library(dplyr)
df %>%
  group_by(route, user_type) %>%
  summarise(count_user_type = n())

输出:

# A tibble: 5 × 3
# Groups:   route [3]
  route user_type count_user_type
  <chr> <chr>               <int>
1 A     causal                  1
2 A     member                  4
3 B     causal                  1
4 B     member                  2
5 C     member                  2

数据

df <- data.frame(route = c("A", "A", "A", "A", "A", "B", "B", "B", "C", "C"),
                 user_type = c("member", "causal", "member", "member", "member", "member", "causal", "member", "member", "member"))

在执行 count.

之前,您需要 group_by 您的相关列(即将它们组合成 count
library(dplyr)

df %>% group_by(route, user_type) %>% count(name = "count_user_type")

# A tibble: 5 × 3
# Groups:   route, user_type [5]
  route user_type count_user_type
  <chr> <chr>               <int>
1 A     casual                  1
2 A     member                  4
3 B     casual                  1
4 B     member                  2
5 C     member                  2