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
1 つに折りたたまれdata.table
ます。dlply
そして、それが分割data.tables
を通過data.frames
するため、それfoo
以上のdata.table操作が非効率になるため、使用したくありませんfoo
。