我使用lmList
来适应480个关系,我想要其中每个的R2。
这是一个示例数据集和模型,它与它看起来非常接近,除了我有480欧元(实验单位):
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
并未向我提供我想要的信息。我最终试图创建一个新的数据框,如下所示:
eu intercept slope R2
11 .01 .95 .98
12 .01 .96 .98
我通过coef
获得系数,现在我需要R平方。
答案 0 :(得分:4)
你走了:
sapply(fit,function(x) summary(x)$r.squared)
11 12
0.9657143 0.9657143
或者一次完成所有事情:
sumfun <- function(x) c(coef(x),summary(x)$r.squared)
t(sapply(fit,sumfun))
(您需要转换sapply
的结果以获取上面指定的表格。然后使用names() <-
或setNames()
以您希望的方式获取列名称。
答案 1 :(得分:1)
使用Ben Bolker的代码,你可以创建一个转换结果的函数,并立即给出表格:
sumfun <- function(x)
{
aux <- function(x) c(coef(x), summary(x)$r.squared)
t(sapply(x,aux))
}
sumfun(fit)