小编Mag*_*out的帖子

data.table聚合到列表列

我正在尝试聚合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某个地方或类似的东西......

任何人都能指出我正确的方向吗?

谢谢!

r data.table

4
推荐指数
1
解决办法
261
查看次数

标签 统计

data.table ×1

r ×1