5

我通过将函数应用于 data.table 的某些子集来生成输出。我正在使用这样的功能:

data[, foo(args), by=list(Year, Month)]

我的函数foo总是返回一个长度向量n。我得到这样的输出:

      Year Month           V1
   1: 1983     2 9.734669e-06
   2: 1983     2 9.165665e-06
   3: 1983     2 2.097477e-05
   4: 1983     2 3.803727e-05

但我想要类似的东西

      Year Month           V1           V2           V3           V4 ...
   1: 1983     2 9.734669e-06 9.165665e-06 2.097477e-05 3.803727e-05 ...

我什至尝试使用list(foo(args)),它没有帮助。还是应该输出形式foo$V1, foo$V2 ...

4

1 回答 1

9

尝试

data[, as.list(foo(args)), by=list(Year, Month)] 

或更改foo为返回 alist而不是 a vector

于 2012-10-10T14:49:18.240 回答