我尝试达到与 dlply 相同的效果data.table
。所以就像一个非常简单的例子:
library(plyr)
library(data.table)
dt <- data.table( p = c("A", "B"), q = 1:2 )
dlply( dt, "p", identity )
$A
p q
1 A 1
$B
p q
1 B 2
dt[ , identity(.SD), by = p ]
p q
1: A 1
2: B 2
foo <- function(x) as.list(x)
dt[ , foo(.SD), by = p ]
p q
1: A 1
2: B 2
显然 的返回值foo
被折叠为 one data.table
。而且我不想使用,因为它通过了dlply
拆分data.tables
,这使得进一步的 data.table 操作效率低下。data.frames
foo
foo