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

时间:2013-09-10 14:01:57

标签: r grouping data.table

我想创建一个<{p>形式的data.table

newdat
#       A     B
#    1: 1   1,2
#    2: 2 1,2,3

来自表单的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

我可以直接通过

创建newdat
newdat <- data.table(A = 1:2, B = list(1:2, 1:3))

我想我可以通过像

之类的东西填写必要的参数
newdat <- data.table(A = unique(dat$A), B = split(dat$B, dat$A))

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

1 个答案:

答案 0 :(得分: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