Подтвердить что ты не робот

Манипуляция строк/агрегирование в dplyr

Я хочу выполнить group_by и выполнить операцию строки для фрейма данных с помощью dplyr

df<-data.frame(varx=c("x1","x1","x2","x2","x2"),vary=c("y1","y2","y3","y4","y5"))

Я хочу, чтобы вывод (newdf) выглядел следующим образом:

newdf <- data.frame(varx=c("x1","x2"),catY=c("y1,y2","y3,y4,y5"))

Я попробовал следующее в dplyr

df %>% group_by(varx)%>%summarise(catY=paste(vary))
Error: expecting a single value

Также попробовал следующее:

df %>% group_by(varx)%>%mutate(catY=paste(vary))

Source: local data frame [5 x 3]
Groups: varx

Я могу сделать это, используя базовую операцию фрейма. Нужна помощь в понимании выхода из dplyr.

4b9b3361

Ответ 1

Немного более короткая версия комментария Дэвида:

library(dplyr)
df %>% group_by(varx) %>% summarise(catY = toString(vary))

#Source: local data frame [2 x 2]
#
#  varx       catY
#1   x1     y1, y2
#2   x2 y3, y4, y5