如何在使用 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
原始数据框
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