gpt4 book ai didi

r - data.table 与 plyr 回归输出

转载 作者:行者123 更新时间:2023-12-03 20:46:06 26 4
gpt4 key购买 nike

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

最佳答案

尝试这个:

> REG[, as.list(coef(lm(y ~ x + z))), by=ID];
ID (Intercept) x z
[1,] Frank -0.2928611 0.07215896 1.835106
[2,] Tony 0.9120795 -1.11153056 2.041260
[3,] Ed 1.0498359 5.77131778 -1.253741

我有一种唠叨的感觉,这个问题是在不到一周前被问到的,但我认为我在尝试时并没有采用这种方法,而且我不记得有任何答案是这样紧凑的。

哦,它是 .. 在 r-help 上。如果他愿意,马修可以评论这是否合理。我想消息是返回列表的函数不会删除维度。有趣的是使用 list(coef(lm(...))没有以我们希望的方式成功。

关于r - data.table 与 plyr 回归输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11266930/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com