为R中的所有变量执行Anova

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

R为anova提供aov-function。所以,如果我想执行它,我可以编写简单的代码:

df2=read.csv("C:/Users/Admin/Desktop/222.csv",sep=";", dec=",")
fit=aov(x1 ~ Q7,data=df2)
summary(fit)

如果我三次写这个代码,我可以为每个变量执行3个anova。但是如何同时对所有三个变量执行anova? I.E.没有为每个X写这个。

df2=

structure(list(Q7 = structure(c(1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 
2L, 2L, 3L, 3L, 3L, 3L, 3L), .Label = c("A", "B", "C"), class = "factor"), 
    x1 = c(13L, 31L, 17L, 27L, 24L, 21L, 34L, 28L, 13L, 25L, 
    12L, 16L, 26L, 27L, 20L), x2 = c(32L, 29L, 16L, 27L, 27L, 
    22L, 36L, 35L, 22L, 27L, 13L, 30L, 17L, 27L, 9L), x3 = c(29L, 
    13L, 18L, 25L, 19L, 21L, 24L, 22L, 30L, 30L, 14L, 28L, 19L, 
    11L, 13L)), .Names = c("Q7", "x1", "x2", "x3"), class = "data.frame", row.names = c(NA, 
-15L))
r anova
1个回答
1
投票

你可以使用reformulate()来提出在aov`函数中使用的公式。

lapply(names(df2[-1]),function(x)aov(reformulate("Q7",x),data=df2))

您还可以在上面的代码中添加summary

© www.soinside.com 2019 - 2024. All rights reserved.