我使用此函数对lm模型进行101次调整:
models <- dlply(mee_chua_sort, "mu", function(df)
lm(nachher~vorher, data = df))
现在我不仅要从模型中提取估计值--我使用:
mod_coef<-ldply(models, coef)
我希望能够很容易地提取出标准差,p值等等。如果我尝试使用类似这样的东西:
mod_coef1<-ldply(models, coef(summary(models))[,'Std.Error'])
我得到错误:错误:$运算符对于原子向量无效
有人能在这方面帮我吗?我希望将其他值保存在df中,就像我对mod_coef所做的那样。
谢谢
发布于 2019-11-13 09:55:19
问题出在ldply( models,coef(summary(Models),在ldply中,您正在循环遍历模型,函数需要处理列表中的每个元素。您需要先编写一个函数进行汇总,然后再编写coef,请参阅
library(dlply)
linmod <- function(df) {
lm(rbi ~ year, data = mutate(df, year = year - min(year)))
}
models <- dlply(baseball, .(id), linmod)
mod_coef<-ldply(models, coef)
results <- ldply(models,function(i)coef(summary(i)))
> head(results)
id Estimate Std. Error t value Pr(>|t|)
1 aaronha01 118.923913043 9.44994928 12.58460860 3.013683e-11
2 aaronha01 -1.732213439 0.73567755 -2.35458242 2.835224e-02
3 abernte02 0.554009613 0.44022430 1.25847122 2.274573e-01
4 abernte02 -0.002403238 0.03829954 -0.06274848 9.507953e-01
5 adairje01 18.831034483 11.77420551 1.59934651 1.337547e-01
6 adairje01 0.879310345 1.61731151 0.54368645 5.958584e-01
# to get standard error
> head(results[,"Std. Error"])
[1] 9.44994928 0.73567755 0.44022430 0.03829954 11.77420551 1.61731151
https://stackoverflow.com/questions/58833062
复制