首页 > 解决方案 > 在R中的groupby之后连接唯一的字符串

问题描述

我正在对数据框进行分组并想要连接唯一的字符串。

data= data.frame(
aa=c(1,2,3,4,5,6,7,8,9,10),
bb=c('a','a','a','a','a','b','b','b','b','b'),
cc=c('hello','hello','hi','message','bye','q','w','r','r','t'))

期望的输出:

bb    cc
a     'hello hi message bye'
b     'q w r t'

目前我正在这样做(这里建议):

result<- data %>% 
  group_by(bb) %>%
  mutate(body = paste0(cc, collapse = "")) %>%
  summarise(t_body = first(body)

但是我得到了所有的字符串而不是唯一的字符串。

标签: rdplyr

解决方案


粘贴前使用uniqueon cc,也不需要mutatestep,直接使用summarize即可:

data %>% 
    group_by(bb) %>% 
    summarise(cc = paste(unique(cc), collapse = ' '))

# A tibble: 2 x 2
#  bb    cc                  
#  <fct> <chr>               
#1 a     hello hi message bye
#2 b     q w r t  

推荐阅读