R为数据帧中的多个变量循环anova

时间:2016-01-02 00:21:48

标签: r

我有兴趣使用aov函数对数据框中的多个变量进行ANOVA,因为我尝试为每个变量做anova。所以我很感兴趣,如果有人帮我制作一个可以解决我的问题的功能。由于我是R的新手,因此解决我的问题时遇到了很多困难。我的数据有超过6个响应变量要分析,所以我想使用aov()函数一次做anova而不是单独做。非常感谢你的帮助。

1 个答案:

答案 0 :(得分:0)

正如@Bryan Hanson所指出的那样,manova可以解决你的问题。以下是它如何适用于您的特定问题的示例。

# Build Sample Data
df <- data.frame(y1 = rnorm(10), y2 = rnorm(10), y3 = rnorm(10), y4 = rnorm(10), y5 = rnorm(10), y6 = rnorm(10), x1 = rnorm(10), x2 = rnorm(10))

# cbind dependent variables and run manova
Y <- cbind(df$y1, df$y2, df$y3, df$y4, df$y5, df$y6)
manova(Y ~ x1 + x2, data = df)

输出:

Call:
   manova(Y ~ x1 + x2, data = df)

Terms:
                       x1        x2 Residuals
resp 1           0.001532  0.252473  2.200198
resp 2           0.796773  0.465659  2.965143
resp 3           3.670896  1.050089 14.643251
resp 4           1.284050  0.002343  6.391881
resp 5           0.486498  0.845829  1.996499
resp 6           0.264803  0.147223  5.971596
Deg. of Freedom         1         1         7

Residual standard errors: 0.5606371 0.6508394 1.446338 0.9555762 0.5340545 0.923626
Estimated effects may be unbalanced