首页 > 解决方案 > rstatix::dunn_test 中的公式有问题

问题描述

我写了一个函数来解析 data.frame,它抛出了一个我无法解决的 rstatix::dunn_test 错误。这是因为变量名称不正确地传递给公式。

>selectedcolnames<-"SF36"
>group_name<-"therapy"
>dunn_test(eval(parse(text=glue("{selectedcolnames}")))~eval(parse(text=glue("{group_name}"))),data=data,p.adjust.method = "holm",detailed = F)

这给出了一个错误:

Error: Can't extract columns that don't exist.
x Column `eval(parse(text = glue("{group_name}")))` doesn't exist.

存在带有数据的“SF36”列和带有分组因子的“治疗”列。我检查了它的工作原理:

wilcox.test(eval(parse(text=glue("{selected}")))~eval(parse(text=glue("{group_name}"))),data)

或者

coin::wilcox_test(eval(parse(text=glue("{selected}")))~eval(parse(text=glue("{group_name}"))),data)

有谁知道如何解决这个问题?

标签: rrstatix

解决方案


我通过重新编写使用玩具数据运行此代码,它以这种方式运行良好;

library(rstatix)
library(glue)

selectedcolnames <- 'Petal.Length'
group_name <- 'Species'

frm <- reformulate(glue("{group_name}"),glue("{selectedcolnames}"))

dunn_test(frm,data=iris,p.adjust.method = "holm",detailed = F)

输出;

# A tibble: 3 x 9
  .y.      group1   group2     n1    n2 statistic        p    p.adj p.adj.signif
* <chr>    <chr>    <chr>   <int> <int>     <dbl>    <dbl>    <dbl> <chr>       
1 Petal.L~ setosa   versic~    50    50      5.86 4.55e- 9 9.09e- 9 ****        
2 Petal.L~ setosa   virgin~    50    50     11.4  3.38e-30 1.02e-29 ****        
3 Petal.L~ versico~ virgin~    50    50      5.56 2.77e- 8 2.77e- 8 ****  

推荐阅读