Non riesco a utilizzare data.table per riepilogare i risultati delle funzioni vettoriali, cosa semplice in ddply.Aggregazioni di tabelle dati con funzioni vettoriali, 2 2
Problema 1: aggregazione di una funzione di (costoso) con uscita vettore
dt <- data.table(x=1:20,y=rep(c("a","b"),each=10))
Questo comando ddply produce quello che voglio: comando tavolo
ddply(dt,~y,function(dtbit) quantile(dtbit$x))
Questi dati non fa quello che voglio:
dt[,quantile(x),by=list(y)]
posso incidere in data.table in questo modo:
012.351.dt[,list("0%"=quantile(x,0),"25%"=quantile(x,0.25),
"50%"=quantile(x,0.5)),by=list(y)]
Ma questo verboso, e sarebbe anche lento se la funzione vettoriale "quantile" fosse lenta.
Un esempio simile è:
dt$z <- rep(sqrt(1:10),2)
ddply(dt,~y,function(dtbit) coef(lm(z~x,dtbit)))
Problema 2: Utilizzo di una funzione con input e output
xzsummary <- function(dtbit) t(summary(dtbit[,"x"]-dtbit[,"z"]))
ddply(dt,~y,xzsummary)
vettore Posso fare questo genere di cose facilmente in data.table?
Ci scusiamo se queste domande hanno già una risposta evidente.
Questo è un problema simile, non identica, a: data.table aggregations that return vectors, such as scale()
Che bella e semplice soluzione (per il rilascio 1) !! – ewallace