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

如何获取R语言列表中每个矩阵的各列最大值

问题原因

你报错的核心原因是apply函数仅适用于矩阵、数组等带有dim维度属性的对象,你传入的是由10个矩阵组成的列表结构,列表本身没有维度属性,所以触发了dim(X) must have a positive length的错误。另外你代码里的变量名My List包含空格,不符合R的变量命名规范,也是潜在的报错点。

解决代码
# 假设你的矩阵列表变量名为my_list(不要带空格)
result <- lapply(my_list, function(x) {
  # 对单个矩阵计算列最大值,转置为1×5矩阵保留列名
  t(apply(x, MARGIN = 2, FUN = max, na.rm = TRUE))
})
代码说明
  • lapply是R中专门用来遍历列表的函数,输入为列表、输出也为列表,刚好匹配你输入列表、输出列表的需求
  • 内层apply(x, 2, max, na.rm = TRUE)会对每个单独的5×5矩阵按列计算最大值,返回带列名的数值向量
  • t()用于将数值向量转置为1行5列的矩阵,完全匹配你需要的输出格式

如果只需要各列最大值的命名向量,不需要1×5矩阵结构,直接去掉t()即可。运行得到的result就是符合要求的结果,你可以打印result[[1]]、result[[10]]验证,和你给出的示例输出完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 05:54:03