如何在 R 中 运行 一种方差分析

How to run one way ANOVA in R

我的数据集如下所示:

> print(mydata)
                col1                 col2                col3
1               0.819               0.851               0.874
2               0.972               0.703               0.821
3               0.891               0.790               0.951
4               0.839               0.799               0.819

我想知道 col1col2col3 三组之间是否存在显着差异。对于这件事,我的猜测是最好的方法是 运行 一个 anova 测试。

请在下面找到我用来生成数据集的脚本,运行 测试和 R 显示的错误:


> mydata <- data.frame(col1, col2, col3)
> accuracymetrics <- as.vector(mydata)
> anova(accuracymetrics)

Error in UseMethod("anova") : no applicable method for 'anova' applied to an object of class "data.frame"

这是我第一次 运行在 R 中进行这样的分析,如果论坛对此问题不感兴趣,请多多包涵。感谢任何解决此错误的输入!

如果我理解正确的话,你所说的三组就是你数据中的三列。 如果是这种情况,您需要做两件事:

首先,将数据从宽格式重塑为长格式,使其看起来像这样

group | value
------------
grp1  | 0.819
grp1  | 0.972

这可以通过 tidyr 包轻松完成

library(tidyr)
longdata <- gather(mydata, group, value)

其次:你必须使用 aov 而不是 anova:

res.aov <- aov(value ~ group, data = longdata)
summary(res.aov)

Here 您可以找到更多详细信息。 希望这会有所帮助。