“group_by”管道中的统计检验(wilcox 或 t 检验,或任何,真的)

问题描述 投票:0回答:0

我有一个数据集,用于查看各种条件下的水质。这是数据的一个子集(称为

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

谢谢!

r dplyr stat
© www.soinside.com 2019 - 2024. All rights reserved.