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