data.table и результат регрессии plyr

Пакет data.table очень полезен с точки зрения скорости. Но у меня возникли проблемы с использованием результатов линейной регрессии. Есть ли простой способ сделать вывод data.table таким же красивым/полезным, как в пакете 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];

Оценки коэффициентов data.table выводятся в одном столбце, в то время как оценки коэффициентов plyr/ddply выводятся в нескольких хорошо помеченных столбцах.

Я знаю, что могу запустить регрессию три раза с data.table, но это кажется действительно неэффективным. Хотя могу ошибаться.

REG[, Intercept=coef(lm(y ~ x + z))[1],
      x        =coef(lm(y ~ x + z))[2],
      z        =coef(lm(y ~ x + z))[3], by=ID];
15
задан bernie 29 June 2012 в 18:27
поделиться