如何解决从 Anova 表中提取平方和并在 R 中保留变量名称
这是一个痒。我可以解决它,但方法很麻烦。我认为有更好的方法。 (?aov
中没有太多信息。)
我正在尝试将方差分析中的平方和提取为向量,并保留变量名称。
f <- y ~ x1 + x2 + ... + xn
ss <- anova( aov( f ) )[,2]
给了我 SS,但丢失了变量名称。 (我可以编写代码来重新附加公式或模型属性中的名称。)
as.data.frame(summary.aov(aov( f )))
将变量留为空格,并附加行名、anova 属性等,而不只是给我一个简单的命名向量。
对 *anova*(aov())
的双重调用是否是正确的方向?
还是我应该重写summary.aov()
?
还是我应该自己计算数字?
推荐的方式是什么?
解决方法
如果您提供示例数据会更简单,但这里有一个带有 mtcars
的示例:
data(mtcars)
mtcars.aov <- aov(hp~cyl+vs+am+gear+carb,mtcars)
mtcars.ss <- summary(mtcars.aov)
table <- data.frame(mtcars.ss[[1]])[,2,drop=FALSE]
table
# Sum Sq
# cyl 100984.1721
# vs 985.7296
# am 6606.3122
# gear 8275.5360
# carb 5323.6281
# Residuals 23551.4970
,
遵循@dash2 的评论和@dcarlson 的回答:
library(dplyr)
library(broom)
mtcars.aov %>% tidy() %>% select(term,sumsq)
## term sumsq
## <chr> <dbl>
## 1 cyl 100984.
## 2 vs 986.
## 3 am 6606.
## 4 gear 8276.
## 5 carb 5324.
## 6 Residuals 23551.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。