假设我想要汇总某个数据框列:
> starwars %>% count(eye_color)
# A tibble: 15 x 2
eye_color n
<chr> <int>
1 black 10
2 blue 19
3 blue-gray 1
4 brown 21
5 dark 1
6 gold 1
7 green, yellow 1
8 hazel 3
9 orange 8
10 pink 1
11 red 5
12 red, blue 1
13 unknown 3
14 white 1
15 yellow 11
有很多小类别,比如“蓝灰色”或“粉色”。我想把它们都合并到“其他”中。有一个多步骤的过程来做到这一点:
starwars %>%
add_count(eye_color) %>%
mutate(eye_color = if_else(n < 5, "other", eye_color)) %>%
count(eye_color)
也有一种方法可以使用单个命令来完成此任务。我以前在什么地方见过这个把戏,但现在找不到了。
发布于 2019-05-22 06:12:37
写下@Jordan的建议:
更新:使用Camille的修复:
starwars %>% mutate(eye_color_grp = as.factor(eye_color) %>%
forcats::fct_lump_min(min = 5, other_level = "Other")) %>%
count(eye_color_grp, sort = TRUE)
https://stackoverflow.com/questions/56246887
复制相似问题