计算唯一组合并在新列中汇总其他列

Has*_*n F 3 r data.table

我有一个包含四列的数据表:a、b、c、d,我想计算 a、b 和 c 的唯一组合,但也记录新列中该组合中的 d 值。

数据表示例:

a b c d
1a 1b 1c n1
1a 1b 1c n2
2a 2b 2c n1
2a 2b 2c n2
2a 2b 2c n3
2a 2b 2c n4
Run Code Online (Sandbox Code Playgroud)

我采用唯一值并对它们进行计数:dt[,.N,by=.(a,b,c)]我得到以下结果:

a   b   c   N
1a  1b  1c  2
2a  2b  2c  4
Run Code Online (Sandbox Code Playgroud)

现在我想添加一个新列,其中包含 column 中的值d。但我不确定如何正确.SD实现这一目标:

输出示例:

a   b   c   N new_col
1a  1b  1c  2 n1,n2
2a  2b  2c  4 n1,n2,n3,n4
Run Code Online (Sandbox Code Playgroud)

或者最好有new_col一个项目列表。

akr*_*run 5

We could use return as a list

library(data.table)
dt[, .(N = .N, new_col = .(d)), by = .(a, b, c)]
        a      b      c     N     new_col
   <char> <char> <char> <int>      <list>
1:     1a     1b     1c     2       n1,n2
2:     2a     2b     2c     4 n1,n2,n3,n4
Run Code Online (Sandbox Code Playgroud)