Вы можете использовать data.table
:
library(data.table)
setDT(df)
df[, .(films = paste(movieid, collapse = ",")), by = "userid"]
userid films
1: 882359 81,926,1349
2: 881235 27
Если вы предпочитаете сохранять в list
, а не в символьном векторе:
df[, .(films = list(movieid)), by = "userid"]
userid films
1: 882359 81, 926,1349
2: 881235 27
(похоже, тот же вывод, но типы не совпадают)