如何在一列中创建唯一值并合并第二列中的所有其他值?

时间:2020-06-30 13:32:28

标签: r dplyr data-transform

我有一个看起来像这样的数据框。

df <- data.frame(year = c(1978, 1978, 1979, 1979), bus = c("29C", "12B", "25G", "27C"))

我希望为year列创建唯一的值,并合并bus列的值。 预期输出如下

# year  bus
# 1978  29C,12B
# 1979  25G,27C

我尝试过的代码和获得的输出

library(dplyr)
df %>% group_by(year) %>% distinct(year) %>% unite(bus, sep = ",", na.rm = F)

# A tibble: 2 x 1
# bus  
#  <chr>
#1 1978 
#2 1979 

代码中的错误是什么?如何获得预期的输出?

1 个答案:

答案 0 :(得分:1)

(评论后编辑)

一种可能的解决方案是

df %>% 
  group_by(year) %>% 
  summarise(bus = paste(bus, collapse = ",")) 

输出

# A tibble: 2 x 2
# Groups:   year [2]
#    year bus    
#   <dbl> <chr>  
# 1  1978 29C,12B
# 2  1979 25G,27C
相关问题