使用R中的ANOVA分析多列

问题描述 投票:0回答:1

我正在使用以下代码来分析我的数据

aov.models <- lapply(setdiff(names(mtcars), "cyl"), function(s) {
  aov(as.formula(paste(s, " ~ cyl")),mtcars)
})

--但是,我不确定如何将列表输出的列表打印到文本文件(我尝试展平但收到错误:Error in as.character.factor(x) : malformed factor)

-一次只能汇总一个,例如summary(aov.models[[5]])

-此外,列表丢失了变量名,现在每个条目都只是一个数字。

r anova
1个回答
0
投票

这是您想要的吗?

names <- list()
aov.models <- lapply(setdiff(names(mtcars), "cyl"), function(s) {
  names <<- append(names, s) # Note the global assignment
  aov(as.formula(paste(s, " ~ cyl")),mtcars)
})
names(aov.models) <- names

out <- capture.output(aov.models)
cat(out, file="myOutput.txt", sep="\n")

根据以下评论中OP的要求。

[summary提供了p值,print(在演示代码中隐式调用的默认方法)没有提供。

out <- capture.output(lapply(aov.models, summary))
cat(out, file="myOutput.txt", sep="\n")
© www.soinside.com 2019 - 2024. All rights reserved.