You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何对R语言数组中的所有矩阵同时单独计算rowSums行和

R 三维数组按切片分别计算行和的高效方案

最优方案:直接使用rowSums的dims参数

R内置的rowSums支持多维度数组的定向求和,通过指定dims参数可以直接实现需求,全程向量化运算,处理大型数组的速度远快于循环或apply类函数。
假设你的三维数组array1维度为c(行数, 列数, 切片数)(第三个维度对应你提到的每个独立矩阵),直接执行以下代码即可:

result <- rowSums(array1, dims = 1)
  • 结果result是行数与原数组行一致、列数等于原数组切片数的矩阵,第i列就是rowSums(array1[,,i])的结果,完全匹配需求。
  • 参数解释:dims = 1表示将第1维(行)作为独立维度,对dims+1及之后的维度(这里为第2维/列)求和,自动按第3维(切片)分组计算。

备选方案:使用apply定向聚合

如果后续需要扩展更复杂的聚合逻辑,可以用apply指定保留的维度进行计算:

result <- apply(array1, MARGIN = c(1,3), FUN = sum)
  • MARGIN = c(1,3)表示保留原数组的第1维(行)和第3维(切片),对剩余的第2维(列)求和,输出结果和rowSums方案完全一致,但处理超大型数组时速度略低于前者。

可选补充:输出保持三维数组格式

如果需要输出结果保持三维数组结构(每个行和结果对应一个1列的矩阵),可以在计算完成后调整维度:

# 调整为三维数组:c(原行数, 1, 原切片数)
dim(result) <- c(nrow(array1), 1, dim(array1)[3])

内容的提问来源于stack exchange,提问作者Stoer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 17:15:03