0

我有一个数据框 90 个观察值和 124306 个变量,名为 KWR 所有数字数据。我想在组之间的每一列中运行 Kruskal Wallis 分析。我在名为“Group”的变量后面添加了一个带有每个不同组的向量。为了测试准确性,我使用以下代码测试了一种肽(名为 x2461):

kruskal.test(X2461 ~ Group, data = KWR)

结果很好,立即给了我一个结果。但是,我需要分析所有变量。我在阅读这篇文章时使用了 lapply:How to loop Bartlett test and Kruskal tests for multiple columns in a dataframe?

cols <- names(KWR)[1:124306]
allKWR <- lapply(cols, function(x) kruskal.test(reformulate("Group", x), data = KWR))

然而,在 R 不停地工作 2 小时后,我辞掉了这份工作。有没有更有效的方法来做到这一点?

提前致谢。

注意:第一次发帖,R 初学者

4

1 回答 1

0

看看包装kruskaltests里的。Rfast对于KWR data.frame,它似乎是这样的:

allKWR <- Rfast::kruskaltests(as.matrix(KWR[,1:124306]), as.numeric(as.factor(KWR$Group)))
于 2022-02-24T18:01:07.993 回答