我正在寻求关于在我的一组数据上执行Kruskal-Wallis测试的帮助。我可以针对单个因素执行测试,比如AD_1yr:
kruskal.test(Shannon ~ AD_1y, data=comm)但我有超过50个因素想要测试,并希望有一个我可以输入的代码,它将执行所有因素的测试,而不必手动执行50次不同的测试。
发布于 2016-01-30 02:09:54
我们可以使用lapply遍历factor列,使用'shannon‘列创建一个data.frame,然后执行kruskal.test
allfactorcolumns <- sapply(comm, is.factor)
lst <- lapply(comm[allfactorcolumns], function(x)
kruskal.test(Shannon~., data= data.frame(x, comm['Shannon'])))如果我们需要提取“p.value”、“df”等。
do.call(rbind, lapply(lst, function(x) data.frame(Pval= x$p.value,
stat= x$statistic, df= x$parameter)))https://stackoverflow.com/questions/35091164
复制相似问题