在 R 中访问 summary() 中的元素

Access elements in summary() in R

我想在 R 中访问 Anova 摘要的一些元素。我一直在尝试这个问题 Access or parse elements in summary() in R

当我将摘要转换为字符串时,它显示如下:

str(summ)
List of 1
 $ :Classes 'anova' and 'data.frame':   2 obs. of  5 variables:
  ..$ Df     : num [1:2] 3 60
  ..$ Sum Sq : num [1:2] 0.457 2.647
  ..$ Mean Sq: num [1:2] 0.1523 0.0441
  ..$ F value: num [1:2] 3.45 NA
  ..$ Pr(>F) : num [1:2] 0.022 NA
 - attr(*, "class")= chr [1:2] "summary.aov" "listof"

如何获取 F 值? 我一直在尝试 summ[c('F value')] 之类的方法,但仍然无法正常工作。

如有任何帮助,我们将不胜感激!

你有一个列表中的 anova 对象(str 输出的第一行是 List of 1)。所以你需要得到这个单个元素的"F value",比如:

 summm[[1]][["F value"]]

作为对上述答案的补充,我建议您在想要 access/use 模型对象的各种元素时开始使用 broom 包。

首先,通过使用 str 命令,您不会将摘要转换为字符串,而只会看到摘要的结构,即列表。所以,str 表示 "structure".

broom 包使您能够将模型对象的信息保存为数据框,这更易于操作。检查我的简单示例:

library(broom)

fit <- aov(mpg ~ vs, data = mtcars)

# check the summary of the ANOVA (not possible to access info/elements)
fit2 = summary(fit)

fit2

#             Df Sum Sq Mean Sq F value   Pr(>F)    
# vs           1  496.5   496.5   23.66 3.42e-05 ***
# Residuals   30  629.5    21.0 


# create a data frame of the ANOVA
fit3 = tidy(fit)

fit3

#        term df    sumsq    meansq statistic      p.value
# 1        vs  1 496.5279 496.52790  23.66224 3.415937e-05
# 2 Residuals 30 629.5193  20.98398        NA           NA


# get F value (or any other values)
fit3$statistic[1]

#[1] 23.66224

我认为对于您提供的具体示例,您实际上并不需要使用 broom 方法,但如果它恰好处理更复杂的模型对象,那么尝试它会非常有用。