我想在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')]
这样的事情,而我仍然无法让它发挥作用。
非常感谢任何帮助!
答案 0 :(得分:2)
你在列表中有anova对象(str输出的第一行是List of 1)。所以你需要获得" F值"这个单一元素,如:
summm[[1]][["F value"]]
答案 1 :(得分:1)
作为上述答案的补充,当您想要访问/使用模型对象的各种元素时,我建议开始使用broom
包。
首先,通过使用str
命令,您不必将摘要转换为字符串,但您只需查看摘要的结构,即列表。因此,str
表示"结构"。
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
方法,但如果碰巧处理更复杂的模型对象,那么尝试它将非常有用。 / p>