我正在尝试对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)
}
字符串
2条答案
按热度按时间7fyelxc51#
您可以使用
lapply
迭代列名称,并使用reformulate
创建公式对象。使用iris
数据集,您可以:字符串
wz3gfoph2#
dunn_test
需要公式,而您试图提供数据或两者的混合。你可以像这样修补for
循环:字符串
另一种方法是使用
reformulate
和Vectorize
,以及dunn_test
函数。型