如何在R中合并我df不太重要的行?

问题描述

这是我的df:

  col1 col2 
1   a    20%  
2   b    20% 
3   c    15% 
4   d    10% 
5   e     9%  
6   f     8%  
7   g     7%  
8   h     6%  
9   h     5%  

我想吃点这样的东西

     col1    col2 
1       a     20%  
2       b     20% 
3       c     15% 
4       d     10% 
5   other     35% 

我尝试使用dplyr解决此问题,但没有成功。

解决方法

您可以在forcats软件包中使用fct_collapse()

library(tidyverse)

df <- tribble(
  ~col1,~col2,"a",20,"b","c",15,"d",10,"e",9,"f",8,"g",7,"h",6,5
  )

df$col1 <- fct_collapse(
  df$col1,a = "a",b = "b",c = "c",d = "d",other_level = "other")

df %>%
  group_by(col1) %>%
  summarise(col2 = sum(col2))