使用 lapply 运行多个 Kruskal Wallis 测试需要很长时间。更简单的解决方案?

发布于 2025-01-09 17:44:41 字数 677 浏览 0 评论 0原文

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

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

效果很好,并立即得到了结果。但是,我需要分析所有变量。我在阅读这篇文章时使用了 lapply: 如何对数据框中的多列循环 Bartlett 测试和 Kruskal 测试?

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

但是,在 R 不间断工作 2 小时后,我辞职了。有没有更有效的方法来做到这一点?

提前致谢。

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

I have a data frame 90 observations and 124306 variables named KWR all numeric data. I want to run a Kruskal Wallis analysis within every column between groups. I added a vector with every different group behind my variables named "Group". To test the accuracy, I tested one peptide (named x2461) with this code:

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

Which worked out fine and got me a result instantly. However, I need all the variables to be analyzed. I used lapply while reading this post: 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))

However, after 2 hours of R working non stop, I quit the job. Is there any more efficient way of doing this?

Thanks in advance.

NB: first time poster, beginner in R

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

林空鹿饮溪 2025-01-16 17:44:42

查看 Rfast 包中的 kruskaltests。对于 KWR data.frame 来说,它看起来像:

allKWR <- Rfast::kruskaltests(as.matrix(KWR[,1:124306]), as.numeric(as.factor(KWR$Group)))

Take a look at kruskaltests in the Rfast package. For the KWR data.frame, it appears it would be something like:

allKWR <- Rfast::kruskaltests(as.matrix(KWR[,1:124306]), as.numeric(as.factor(KWR$Group)))
放飞的风筝 2025-01-16 17:44:42

这太棒了 - 我在 0.01 系统时间内获得了 50 列和数百个案例。

This was great - I got 50 columns and several hundred cases in 0.01 system time.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文