如何在 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
我想知道 col1
、col2
和 col3
三组之间是否存在显着差异。对于这件事,我的猜测是最好的方法是 运行 一个 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 您可以找到更多详细信息。
希望这会有所帮助。
我的数据集如下所示:
> 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
我想知道 col1
、col2
和 col3
三组之间是否存在显着差异。对于这件事,我的猜测是最好的方法是 运行 一个 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 您可以找到更多详细信息。 希望这会有所帮助。