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

如何优化大型数据框中每列特定间隔行的均值计算?

数据集指定间隔行均值计算优化

需求说明

我有一个包含48列、481行的大型数据集,需要计算每列中每第12行(如单元格[12,1]、[24,1]等)的均值,并对所有列重复该操作。目前我只能手动处理5行,用的是非常繁琐的非最优代码:

原实现代码

# 每96行取一个值(共5行)计算均值,然后绘图,对每列重复此操作
# modified_Candida_albicans_5plates_48h 是数据框
for (l in 1:47){
    A = (as.numeric(modified_Candida_albicans_5plates_48h[row,column]))
    row = row + 96
    B = (as.numeric(modified_Candida_albicans_5plates_48h[row,column]))
    row = row + 96
    C = (as.numeric(modified_Candida_albicans_5plates_48h[row,column]))
    row = row + 96
    D = (as.numeric(modified_Candida_albicans_5plates_48h[row,column]))
    row = row + 96
    E = (as.numeric(modified_Candida_albicans_5plates_48h[row,column]))
    meana = c(A,B,C,D,E)
    meanb = mean(meana)
    points(time,meanb,pch = 19, col="blue")
    time = time + 1
    column = column + 1
    row = row - 384
  }

优化方案

方法1:Base R 实现

直接通过行索引筛选指定间隔的行,用批量函数计算均值,彻底替代手动循环:

# 筛选行号为12的倍数的行(12、24、36...)
selected_rows = seq(from = 12, to = nrow(modified_Candida_albicans_5plates_48h), by = 12)
# 提取对应行的数据子集
subset_data = modified_Candida_albicans_5plates_48h[selected_rows, ]
# 批量计算每列均值(自动跳过缺失值)
column_means = colMeans(subset_data, na.rm = TRUE)

# 如果是按原代码逻辑,取间隔96行的5个值(如行号1、97、193...),替换成:
# selected_rows = seq(from = 1, to = 1 + 96*4, by = 96)

# 绘图也能批量完成
plot(1:length(column_means), column_means, pch = 19, col = "blue", type = "p")

方法2:dplyr 实现(更直观)

用tidyverse工具链的语法,逻辑更清晰:

library(dplyr)

# 筛选12的倍数行并计算每列均值
column_means = modified_Candida_albicans_5plates_48h %>%
  slice(seq(12, n(), by = 12)) %>%
  summarise(across(everything(), mean, na.rm = TRUE))

# 对应原代码间隔96行的逻辑:
# column_means = modified_Candida_albicans_5plates_48h %>%
#   slice(seq(1, 1 + 96*4, by = 96)) %>%
#   summarise(across(everything(), mean, na.rm = TRUE))

# 批量绘制点图
points(1:ncol(column_means), unlist(column_means), pch = 19, col = "blue")

核心优势

  • 摆脱手动逐行取值的冗余循环,代码简洁易维护
  • 自动批量处理所有列,无需手动管理列索引
  • 适配数据集行数变化,不用硬编码固定行号
  • 支持自动忽略缺失值,结果更可靠

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 17:47:22