如何在R

时间:2019-04-18 11:43:30

标签: r statistics anova

我有一个像这样的数据集:

> 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)
  

UseMethod(“ anova”)中的错误:'anova'没有适用的方法   应用于“ data.frame”类的对象

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

1 个答案:

答案 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,您可以找到更多详细信息。 希望这会有所帮助。