使用group_by连接字符串并在r中汇总

时间:2017-05-13 21:28:29

标签: r dplyr

我试图根据分组将一列字符串连接在一起。我正在使用与我相似的代码与其他人使用的代码(例如use dplyr to concatenate a column),但它不起作用,我无法弄清楚原因。

a = tibble(
       x = c(1,2,1,2),
       z = c('1','2','3','4')
   )

a %>% group_by(x) %>% summarise(val=paste(z, collapse=" "))

给出:

   val
1 1 2 3 4

就像只有一个组一样。然而,当我执行不同的功能时,分组工作正常:

a %>% group_by(x) %>% tally()
# A tibble: 2 × 2
      x     n
  <dbl> <int>
1     1     2
2     2     2

知道问题可能是什么?

1 个答案:

答案 0 :(得分:3)

可能是plyr包也被加载并从summarise屏蔽了dplyr函数,因为它们都具有相同的函数名。一种选择是使用::来指定dplyr

中的功能
a %>%
   group_by(x) %>%
   dplyr::summarise(val=paste(z, collapse=" "))
# A tibble: 2 x 2
#      x   val
#  <dbl> <chr>
#1     1   1 3
#2     2   2 4