Связать строки по группам с помощью dplyr [duplicate]

На этот вопрос уже есть ответ:

Collapse / concatenate / объединить столбец в одну строку через запятую в каждой группе 2 ответа

у меня есть датафрейм, который выглядит следующим образом

> data <- data.frame(foo=c(1, 1, 2, 3, 3, 3), bar=c('a', 'b', 'a', 'b', 'c', 'd'))
> data
  foo bar
1   1   a
2   1   b
3   2   a
4   3   b
5   3   c
6   3   d

Я хотел бы создать новый столбец bars_by_foo, представляющий собой конкатенацию значений bar с помощью foo. Таким образом, новые данные должны выглядеть следующим образом:

  foo bar bars_by_foo
1   1   a          ab
2   1   b          ab
3   2   a           a
4   3   b         bcd
5   3   c         bcd
6   3   d         bcd

Я надеялся, что сработает следующее:

p <- function(v) {
  Reduce(f=paste, x = v)
}
data %>% 
  group_by(foo) %>% 
  mutate(bars_by_foo=p(bar))

Но этот код дает мне ошибку

Error: incompatible types, expecting a character vector.

Что я делаю не так

Ответы на вопрос(4)

Ваш ответ на вопрос