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

如何对矩阵每24个值计算均值、最值及差值?

矩阵按每24个元素分组统计均值、极值及差值

你的示例数据是一个包含240个正态分布值的列矩阵,我们可以按每24个元素为一组,完成均值、最大值、最小值及极值差的计算,以下是两种常用实现方式:

方法一:Base R 实现

无需额外安装包,直接用基础函数完成分组统计:

# 生成示例数据
data <- as.matrix(rnorm(240,8,6))

# 生成分组标签:每24个元素为一组,共10组
groups <- gl(n = nrow(data) %/% 24, k = 24)

# 分组计算统计量
group_stats <- tapply(data, groups, function(x) {
  data.frame(
    mean = mean(x),
    max = max(x),
    min = min(x),
    diff = max(x) - min(x)
  )
})

# 合并结果为数据框
result <- do.call(rbind, group_stats)
print(result)

代码说明:

  • gl() 生成分组因子,n 指定组数,k 指定每组元素个数;
  • tapply() 按分组对数据应用自定义函数,计算所需统计量;
  • do.call(rbind, ...) 将分散的分组结果合并为统一的数据框。

方法二:Tidyverse 实现

使用dplyr和tibble包,代码更直观易读:

# 安装并加载所需包(首次使用需安装)
# install.packages("tidyverse")
library(dplyr)
library(tibble)

# 生成示例数据
data <- as.matrix(rnorm(240,8,6))

# 转换格式、分组并统计
result <- data %>%
  as_tibble(colnames = "value") %>%
  mutate(group = rep(1:(n() %/% 24), each = 24)) %>%
  group_by(group) %>%
  summarise(
    mean = mean(value),
    max = max(value),
    min = min(value),
    diff = max - min
  )

print(result)

代码说明:

  • as_tibble() 将矩阵转换为 tibble 格式,方便后续操作;
  • mutate() 添加分组列,每组包含24个元素;
  • group_by() + summarise() 按分组汇总计算所需统计量。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 16:35:23