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

时间:2016-04-29 11:33:32

标签: r statistics output elements

我想在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')]这样的事情,而我仍然无法让它发挥作用。

非常感谢任何帮助!

2 个答案:

答案 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>