为所有符合lmList的模型打印R平方 [英] Print R-squared for all of the models fit with lmList
问题描述
我使用lmList
来适应480个关系,我希望每个关系的R2.
I used lmList
to fit 480 relationships and I would like the R2 of each of these.
这是一个示例数据集和模型,与我的实际情况非常相似,除了我有480 eu(实验单位):
Here is an example dataset and model which are pretty close to what it really looks like, except I have 480 eu (experimental units):
eu mass day
11 .02 1
11 .03 2
11 .04 3
11 .06 4
12 .01 1
12 .03 2
12 .04 3
12 .05 4
fit<-lmList(mass ~ day | eu, data=df)
打印fit
或summary
并没有给我我想要的信息.我最终将尝试制作一个新的数据框,如下所示:
Printing fit
or summary
does not give me the information I want. I am ultimately trying to make a new dataframe that will look like:
eu intercept slope R2
11 .01 .95 .98
12 .01 .96 .98
我已经通过coef
获得了系数,现在我需要R平方.
I've got the coefficients through coef
, now I need the R-squared.
推荐答案
在这里:
sapply(fit,function(x) summary(x)$r.squared)
11 12
0.9657143 0.9657143
或者一次完成所有操作:
Or to do everything at once:
sumfun <- function(x) c(coef(x),summary(x)$r.squared)
t(sapply(fit,sumfun))
(您需要对来自sapply
的结果进行转置以获得上述指定的表).然后使用names() <-
或setNames()
以所需的方式获取列名.
(you need to transpose the results from sapply
to get the table as specified above). Then use names() <-
or setNames()
to get the column names the way you want them.
这篇关于为所有符合lmList的模型打印R平方的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!