在R中使用group_by和summarise连接字符串

6

我正在尝试根据分组将一列字符串连接在一起。我使用的代码与其他人使用的代码(例如使用dplyr连接列)似乎完全相同,但它没有起作用,而且我也找不出原因。

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个回答

14

可能是因为plyr包也被加载并遮盖了dplyrsummarise函数,因为它们都有相同的函数名。一种选项是使用::来指定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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接