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

如何计算R语言矩阵各列的min()与max()并保存结果?

R语言矩阵列数值范围计算的简便实现方法

现有如下R语言矩阵:

data <- structure(c(269.643848985434, 284.856715574861, 278.687093704939, 
242.00628682971, 258.754844814539, 257.241126745939, 250.868861973286, 
267.881099879742, 266.277047023177, 264.643696397543, 283.306375294924, 
278.137760534883, 251.230201125145, 264.389782398939, 260.087893307209, 
263.933225497603, 284.947050362825, 279.185155779123, 262.722251042724, 
284.903103709221, 279.329203143716, 256.589251384139, 274.861293360591, 
270.730307921767, 233.265785723925, 249.657887518406, 247.94396802783, 
264.665669724345, 284.124271348119, 278.701742589474, 0, 0, 0
), dim = c(3L, 11L), dimnames = list(NULL, c("", "", "", "", 
"", "", "", "", "", "", "gt")))

需要计算该矩阵每列的数值范围(即最小值min()和最大值max()),并将结果存入列表,求简便实现方法。


方案1:Base R原生方法(无需额外安装包)

这是最轻量化的实现方式,利用原生apply()函数按列处理:

# 计算每列的min和max,返回矩阵格式
col_ranges_matrix <- apply(data, 2, function(col) c(min = min(col), max = max(col)))

# 将矩阵转换为列表,每个元素对应一列的范围
col_ranges_list <- as.list(data.frame(col_ranges_matrix))
  • apply(data, 2, ...)中的2表示按列操作,若需按行则传入1
  • 匿名函数返回当前列的最小值和最大值,并给结果命名,便于后续查看
  • 最终转换后的列表元素名与原矩阵列名完全对应(包括最后一列gt)

方案2:Tidyverse工具包实现(适配tidy工作流)

如果日常使用tidyverse生态,可借助purrr::map()快速实现:

# 安装并加载tidyverse
install.packages("tidyverse")
library(purrr)

# 矩阵转数据框后,遍历每列计算范围
col_ranges_list <- map(as.data.frame(data), ~c(min = min(.x), max = max(.x)))

结果说明

执行后,col_ranges_list的每个元素都是包含min和max的命名向量,例如最后一列gt的结果为c(min=0, max=0)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 04:40:36