我使用此功能将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'])
我得到了错误: 错误:$运算符对于原子向量无效
有人可以帮我吗?我想像使用mod_coef一样将其他值保存在df中
谢谢
答案 0 :(得分:0)
问题在于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