我有一个像这样的数据集:
> 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)
UseMethod(“ anova”)中的错误:'anova'没有适用的方法 应用于“ data.frame”类的对象
这是我第一次在R中运行这样的分析,所以如果这个问题对论坛不感兴趣,请多多包涵。感谢您提供解决此错误的任何输入!
答案 0 :(得分:1)
如果我正确地理解了您所说的三组,那就是数据中的三列。 如果是这种情况,您需要做两件事:
首先,将数据从宽格式重整为长格式,使其看起来像这样
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,您可以找到更多详细信息。 希望这会有所帮助。