【问题标题】:Trouble with formula in rstatix::dunn_testrstatix::dunn_test 中的公式有问题
【发布时间】:2021-11-06 20:59:56
【问题描述】:

我编写了一个函数来解析 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)

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

【问题讨论】:

标签: r rstatix


【解决方案1】:

我用玩具数据重新编写了这段代码,以这种方式运行得很好;

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

【讨论】:

    【解决方案2】:

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

    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)
    

    【讨论】:

    • 请添加更多详细信息以扩展您的答案,例如工作代码或文档引用。
    猜你喜欢
    • 2021-05-30
    • 2021-05-18
    • 1970-01-01
    • 2021-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多