创建data.table列出由另一个变量分组的一个变量的值

Hea*_*ner 9 grouping r data.table

我想创建一个data.table表单

newdat
#       A     B
#    1: 1   1,2
#    2: 2 1,2,3
Run Code Online (Sandbox Code Playgroud)

从一个data.table形式

dat <- data.table(A = c(1, 1, 2, 2, 2), B = c(1, 2, 1, 2, 3))
dat
#    A B
# 1: 1 1
# 2: 1 2
# 3: 2 1
# 4: 2 2
# 5: 2 3
Run Code Online (Sandbox Code Playgroud)

我可以newdat直接通过创建

newdat <- data.table(A = 1:2, B = list(1:2, 1:3))
Run Code Online (Sandbox Code Playgroud)

我猜我可以通过类似的方式填写必要的参数

newdat <- data.table(A = unique(dat$A), B = split(dat$B, dat$A))
Run Code Online (Sandbox Code Playgroud)

但我觉得有一种更好的方法可以使用data.table我现在找不到的功能 - 任何建议吗?

sta*_*ant 8

干得好 dat[,list(B=list(B)),by=A]

dat[,list(B=list(B)),by=A]
   A     B
1: 1   1,2
2: 2 1,2,3
Run Code Online (Sandbox Code Playgroud)