我正在尝试使用循环在数据集的数百列上运行kruskal.test。电子表格中有21列关于元数据的列,不需要以这种方式进行分析,但是包含我需要进行统计分析的分组信息。
tomato = read.csv("2017_2018_16s_table_6.csv")
Tomcom = tomato[,22:713]
members <- colnames(Tomcom)
for (i in members) {
kruskal.test(i ~ BS2, data = tomato)
}
我收到以下错误消息:
model.frame.default中的错误(公式= i〜BS2,数据=番茄):
可变长度不同(适用于“ BS2”)
但是,如果我用i代替给定的列名,则分析有效。
答案 0 :(得分:0)
我相信这可以解决问题,但是如果您发布示例数据集,我可以确认。
for (i in 1:length(members)) {
kruskal.test(get(members[i]) ~ BS2, data = tomato)
}
就像下面的注释一样,这不会保存结果。使用以下方法是将所有结果存储在数据框中的一种方法:
myfunction = function(member){
kruskal.test(get(members[i]) ~ BS2, data = tomato)
}
colnames(Tomcom)%>%
unlist()%>%
purrr::map(myfunction)