【发布时间】:2015-08-06 16:21:56
【问题描述】:
我想要做的是以下,给定一个矩阵,例如:mat <- matrix(1:100, nrow = 4) 和一组列组合c_w <- combn(c(1,2,3,4), 2)。我想计算每个组合的平均值。所以对于第一个组合,我们有rowMeans(mat[,c_w[,1]]),对于第二个rowMeans(mat[,c_w[,2]])。到目前为止一切顺利,我可以将它包装在一个 for 循环中,然后使用 row combine 将结果组合成一个很好的结果矩阵。然而问题是性能,如果可能的话,我想以矢量化的方式来做这件事。所以我的问题是:
我们可以在 R 代码中不使用 for 循环吗?
编辑 我希望它以矩阵形式出现,其中每列代表每组的平均值。然而,这也可以通过对 Arun 的代码进行一些小的添加来实现。请把评论变成答案,以便我给你加分:)。
谢谢
【问题讨论】:
-
我认为数组方法要快一点。