运行 多个 Kruskal Wallis 测试 lapply 耗时很长。更简单的解决方案?
Running multiple Kruskal Wallis test with lapply taking long. Easier solution?
我有一个数据框,包含 90 个观测值和 124306 个变量,名为 KWR 所有数值数据。我想 运行 在组间的每一列中进行 Kruskal Wallis 分析。我在名为“Group”的变量后面添加了一个包含每个不同组的向量。为了测试准确性,我使用以下代码测试了一种肽(名为 x2461):
kruskal.test(X2461 ~ Group, data = KWR)
结果很好,我立即得到了结果。但是,我需要分析所有变量。我在阅读此 post 时使用了 lapply:
cols <- names(KWR)[1:124306]
allKWR <- lapply(cols, function(x) kruskal.test(reformulate("Group", x), data = KWR))
然而,在R不停地工作2小时后,我辞掉了工作。有没有更有效的方法来做到这一点?
提前致谢。
注意:第一次 poster,R 初学者
查看 Rfast
包中的 kruskaltests
。对于 KWR
data.frame
,它似乎是这样的:
allKWR <- Rfast::kruskaltests(as.matrix(KWR[,1:124306]), as.numeric(as.factor(KWR$Group)))
我有一个数据框,包含 90 个观测值和 124306 个变量,名为 KWR 所有数值数据。我想 运行 在组间的每一列中进行 Kruskal Wallis 分析。我在名为“Group”的变量后面添加了一个包含每个不同组的向量。为了测试准确性,我使用以下代码测试了一种肽(名为 x2461):
kruskal.test(X2461 ~ Group, data = KWR)
结果很好,我立即得到了结果。但是,我需要分析所有变量。我在阅读此 post 时使用了 lapply:
cols <- names(KWR)[1:124306]
allKWR <- lapply(cols, function(x) kruskal.test(reformulate("Group", x), data = KWR))
然而,在R不停地工作2小时后,我辞掉了工作。有没有更有效的方法来做到这一点?
提前致谢。
注意:第一次 poster,R 初学者
查看 Rfast
包中的 kruskaltests
。对于 KWR
data.frame
,它似乎是这样的:
allKWR <- Rfast::kruskaltests(as.matrix(KWR[,1:124306]), as.numeric(as.factor(KWR$Group)))