我有一个数据集,用于查看各种条件下的水质。这是数据的一个子集(称为
tempdf1
:
Material Unit Condition Rep Measurement
1 Bromine ppm Unfiltered 1 4.0
2 Carbonate ppm Unfiltered 1 80.0
3 Bromine ppm Unfiltered 2 6.0
4 Carbonate ppm Unfiltered 2 120.0
5 Bromine ppm Unfiltered 3 6.0
6 Carbonate ppm Unfiltered 3 100.0
7 Bromine ppm Filtered 1 0.0
8 Carbonate ppm Filtered 1 120.0
9 Bromine ppm Filtered 2 0.0
10 Carbonate ppm Filtered 2 100.0
11 Bromine ppm Filtered 3 0.5
12 Carbonate ppm Filtered 3 100.0
我想进行统计检验(我倾向于 t 检验,但由于我的数据大小不是正态分布的,所以我想进行 Wilcoxen 检验)。但是,无论我做什么,我都无法成功运行它。
我想按材料(溴、碳酸盐)对我的测试进行分组,然后将“未过滤”的测量结果与“已过滤”的测量结果进行比较。但是,当我尝试运行它时,我不断收到错误消息。我重组了我的数据,以便“未过滤”和“已过滤”的测量值位于不同的列中。这是我如何重组数据的示例,以及我尝试运行的分析:
tempdf2 <- tempdf1 %>%
tidyr::pivot_wider(id_cols=c(Material,Rep),names_from=Condition,values_from=Measurement)
tempdf2 %>%
dplyr::group_by(Material) %>%
dplyr::summarize(w=wilcox.test(Filtered~Unfiltered,paired=FALSE)$p.value)
这是我收到的错误
Error in `dplyr::summarize()`:
! Problem while computing `w = wilcox.test(Filtered ~ Unfiltered, paired = FALSE)$p.value`.
ℹ The error occurred in group 2: Material = "Carbonate".
Caused by error in `wilcox.test.formula()`:
! grouping factor must have exactly 2 levels
Run `rlang::last_error()` to see where the error occurred.
我已经阅读了几篇关于首先使用“group_by”方法运行各种统计测试的文章,但一直无法理解。有人能帮助我更好地理解如何在按特定变量分组的表上运行统计测试(例如:Wilcoxon)吗?
谢谢!