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

R语言从向量列表生成按元素名称分组的2x2矩阵列表方法咨询

问题原因

你原来使用的lapply(SC_sum, "matrix", nrow = 2, byrow = T)逻辑是遍历SC_sum列表内的每一个长度为4的向量,将每个向量单独转换为2x2矩阵,所以得到的4个矩阵分别对应SC_sum的4个原生向量,和你需要的「按工具类型分组,每个分组取4个列表的对应元素再拼接为矩阵」的需求逻辑完全相反。

修正代码

基础R实现(无需额外安装包)

# 提取统一的工具名称
tool_names <- names(SC_sum[[1]])
# 按工具名循环提取对应元素后生成矩阵
result <- lapply(tool_names, function(cur_name) {
  # 从SC_sum的4个向量中分别提取当前工具名对应的数值,组成长度为4的向量
  cur_vals <- sapply(SC_sum, `[[`, cur_name)
  # 按你要求的byrow=FALSE规则生成2x2矩阵
  matrix(cur_vals, nrow = 2, byrow = FALSE)
})
# 给结果列表命名,方便直接调用对应工具的矩阵
names(result) <- tool_names

调用验证:result$chisel即可输出你预期的chisel矩阵。

purrr简洁实现(tidyverse生态)

library(purrr)
result <- map(set_names(names(SC_sum[[1]])), ~map_dbl(SC_sum, .x) |> matrix(nrow = 2, byrow = FALSE))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 07:06:02