假设我要总结一个数据框列:
> 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)
还有一种方法可以通过单个命令来完成。我以前在某个地方见过这个技巧,但现在找不到了。
答案 0 :(得分:1)
撰写@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)