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];