使用dplyr连接列

gre*_*ane 10 r dplyr

我有一个data_frame我希望vector成为元素串联的地方A.所以

df <- data_frame(id = c(1, 1, 2, 2), A = c("a", "b", "b", "c"))
df
Source: local data frame [4 x 2]

  id A
1  1 a
2  1 b
3  2 b
4  2 c
Run Code Online (Sandbox Code Playgroud)

应该成为

newdf
Source: local data frame [4 x 2]

  id vector
1  1 "a b"
2  2 "b c"
Run Code Online (Sandbox Code Playgroud)

我的第一个倾向是使用paste()内部,summarise但这不起作用.

df %>% group_by(id) %>% summarise(paste(A))
Error: expecting a single value
Run Code Online (Sandbox Code Playgroud)

Hadley和Romain谈到了GitHub问题中的类似问题,但我不太清楚这是如何直接应用的.似乎应该有一个非常简单的解决方案,特别是因为paste()通常返回单个值.

MrF*_*ick 24

您需要折叠粘贴中的值

df %>% group_by(id) %>% summarise(vector=paste(A, collapse=" "))
Run Code Online (Sandbox Code Playgroud)