我正在尝试聚合data.table中的数据以创建一个新列,该列是以前的行列表.通过示例更容易看到:
dt <- data.table(id = c(1,1,1,1,2,2,3,3,3), letter = c('a','a','b','c','a','c','b','b','a'))
Run Code Online (Sandbox Code Playgroud)
我希望以这样的方式聚合它,结果应该是
id letter
1: 1 a,a,b,c
2: 2 a,c
3: 3 b,b,a
Run Code Online (Sandbox Code Playgroud)
直觉我试过了
dt[,j = list(list(letter)), by = id]
Run Code Online (Sandbox Code Playgroud)
但这不起作用.当我逐个案例时,奇怪的是,例如:
> dt[id == 1,j = list(list(letter)), by = id]
id V1
1: 1 a,a,b,c
Run Code Online (Sandbox Code Playgroud)
结果很好......我觉得我错过了.SD某个地方或类似的东西......
任何人都能指出我正确的方向吗?
谢谢!