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))
你可以使用reformulate()
来提出在aov`函数中使用的公式。
lapply(names(df2[-1]),function(x)aov(reformulate("Q7",x),data=df2))
您还可以在上面的代码中添加summary