9

我想创建一个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我现在找不到的功能来做到这一点 - 有什么建议吗?

4

1 回答 1

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
于 2013-09-10T14:10:02.113 回答