Il pacchetto data.table è molto utile in termini di velocità. Ma sto avendo problemi in realtà usando l'output di una regressione lineare. C'è un modo semplice per ottenere che l'output data.table sia così bello/utile come quello dal pacchetto plyr? Di seguito è un esempio. Grazie!output regressione data.table vs plyr
library('data.table');
library('plyr');
REG <- data.table(ID=c(rep('Frank',5),rep('Tony',5),rep('Ed',5)), y=rnorm(15), x=rnorm(15), z=rnorm(15));
REG;
ddply(REG, .(ID), function(x) coef(lm(y ~ x + z, data=x)));
REG[, coef(lm(y ~ x + z)), by=ID];
Le stime dei coefficienti data.table vengono emessi in una singola colonna mentre le plyr/stime dei coefficienti ddply vengono emessi in più e ben etichettati colonne.
So che posso eseguire la regressione tre volte con data.table ma sembra davvero inefficiente. Potrei sbagliarmi però.
REG[, Intercept=coef(lm(y ~ x + z))[1],
x =coef(lm(y ~ x + z))[2],
z =coef(lm(y ~ x + z))[3], by=ID];
C'era [questo] (http://stackoverflow.com/questions/11233183/grouping-in-data-table-how-to-get-more-than-1-column-of-results/11233262#11233262) da ieri (vedi, in particolare, il secondo commento alla mia risposta), ma è bello avere questa dimostrazione più prominente. –
E si noti che 'list()' non è la risposta. –
Ecco perché ho fatto riferimento al commento;) (Sto solo provando a mostrarti dove potresti avere quel sentimento fastidioso.) –