Использование dplyr:
df <- tibble(id = c(1,1,3),
b = c("foo", "bar", "foo"),
c = c("x", "y", "z"))
df
# A tibble: 3 x 3
id b c
<dbl> <chr> <chr>
1 1 foo x
2 1 bar y
3 3 foo z
df %>% group_by(id) %>%
summarize(new = paste(b, collapse = ","),
new2 = paste(c, collapse = ","))
, что приводит к:
# A tibble: 2 x 3
a new new2
<dbl> <chr> <chr>
1 1 foo,bar x,y
2 3 foo z