rstatix::dunn_test 中的公式有问题

Trouble with formula in 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)

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

我 运行 这段代码通过重新编写玩具数据,它以这种方式工作得很好;

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

我找到了另一种方法(可能更复杂):

library(rstatix)
library(glue)

selectedcolnames <- 'Petal.Length'
group_name <- 'Species'
    
dunn_test(formula=eval(parse(text=glue("{selectedcolnames}~{group_name}"))),data=iris,p.adjust.method = "holm",detailed = F)