我曾经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)
打印fit或summary不给我我想要的信息。我最终试图制作一个新的数据框,看起来像:
eu intercept slope R2
11 .01 .95 .98
12 .01 .96 .98
Run Code Online (Sandbox Code Playgroud)
我已经得到了系数coef,现在我需要 R 平方。
干得好:
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()以您想要的方式获取列名。