打印适合 lmList 的所有模型的 R 平方

Naz*_*zer 4 r lm nlme

我曾经lmList适合 480 个关系,我想要每个关系的 R2。

这是一个示例数据集和模型,它非常接近实际情况,但我有 480 eu(实验单位):

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)
Run Code Online (Sandbox Code Playgroud)

打印fitsummary不给我我想要的信息。我最终试图制作一个新的数据框,看起来像:

eu    intercept    slope    R2
11     .01          .95     .98
12     .01          .96     .98
Run Code Online (Sandbox Code Playgroud)

我已经得到了系数coef,现在我需要 R 平方。

Ben*_*ker 5

干得好:

sapply(fit,function(x) summary(x)$r.squared)
       11        12 
0.9657143 0.9657143 
Run Code Online (Sandbox Code Playgroud)

或者一次性完成所有操作:

sumfun <- function(x) c(coef(x),summary(x)$r.squared)
t(sapply(fit,sumfun))
Run Code Online (Sandbox Code Playgroud)

(您需要将结果转置sapply以获得上面指定的表格)。然后使用names() <-setNames()以您想要的方式获取列名。