gpt4 book ai didi

r - dunn 的循环数据帧列的测试

转载 作者:行者123 更新时间:2023-12-02 19:16:26 25 4
gpt4 key购买 nike

我正在尝试对 Iris 数据执行 Dunn 检验。我想循环 4 列,并对不同物种的每列执行 Dunn 测试。但是,当我尝试获取列名称时,它不起作用。谁能告诉我为什么?

library(rstatix)
data<-iris
for (i in seq(1:4)) {
a<-colnames(data)
colname1 <-as.character(a[5])
colname2 <-as.character(a[i])
dtest<-data %>%
dunn_test( get(colname2) ~ get(colname1), p.adjust.method = "BH")
print(dtest)
print(i)
}

最佳答案

您可以使用 lapply 迭代列名称,并使用 reformulate 创建公式对象。使用 iris 数据集,您可以执行以下操作:

colname1 <- names(iris)[5]
colname2 <- names(iris)[1:4]

data <- lapply(colname2, function(x) {
rstatix::dunn_test(iris, reformulate(colname1, x),
p.adjust.method = "BH")
})
data
#[[1]]
# 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 Sepal.Length setosa versicolor 50 50 6.11 1.02e- 9 1.53e- 9 ****
#2 Sepal.Length setosa virginica 50 50 9.74 2.00e-22 6.00e-22 ****
#3 Sepal.Length versicolor virginica 50 50 3.64 2.77e- 4 2.77e- 4 ***

#[[2]]
# 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 Sepal.Width setosa versicolor 50 50 -7.79 6.82e-15 2.05e-14 ****
#2 Sepal.Width setosa virginica 50 50 -5.37 7.68e- 8 1.15e- 7 ****
#3 Sepal.Width versicolor virginica 50 50 2.41 1.58e- 2 1.58e- 2 *
#...
#...

关于r - dunn 的循环数据帧列的测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63653727/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com