r - 如何在 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)
UseMethod(“anova”)中的错误:没有适用于“anova”的方法应用于“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)
在这里您可以找到更多详细信息。希望这可以帮助。
推荐阅读
- php - 从 Wordpress 多站点网络中的另一个站点获取特定类别中的帖子
- python - 使用 Python Scrapy 从具有相同 id 和类的多个表中抓取数据
- windows - Jenkins 上的调试模式 - 执行 Windows 批处理命令?
- arduino - 如何使用 MH-Z14a CO2 传感器?
- c - 使用 getopt optarg 的 fopen 错误问题
- power-automate - 在 Power Automate 中每月创建存储桶并在其中创建任务
- ms-word - 官员:在 .rmd 文件中插入横向格式的分节符
- spring - Springboot 后端无法连接来自 Vue 的 Axios 调用
- c# - WPF 打印问题:为什么我的 PageMediaSize 设置被忽略?
- python - 如何检查给定 DataFrame 列的每一行是否在指定范围内?