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

R语言按每5行分组计算含缺失值的均值问题咨询

实现方案

核心逻辑

你之前的问题根源是分组逻辑和NA处理的顺序错了:先按原始行顺序每5行固定分组(完全不考虑NA的存在),再在每个固定分组内计算非NA值的均值,就能完全满足需求,不会出现跨组取有效值的问题。

代码实现

tidyverse 方案(推荐)

library(dplyr)
df_result <- df %>%
  # 按行号每5行分一组,和value列有没有NA完全无关
  mutate(group_id = (row_number() - 1) %/% 5 + 1) %>%
  group_by(group_id) %>%
  summarise(
    # 组内仅排除NA计算均值,不会跨组取数
    value_mean = mean(value, na.rm = TRUE),
    # 可选:保留每组的起始时间方便核对
    起始时间 = first(时间)
  )

base R 方案

# 生成组号
df$group_id <- cut(seq(nrow(df)), breaks = seq(0, nrow(df), by = 5), labels = FALSE)
# 分组计算均值
df_result <- aggregate(value ~ group_id, df, function(x) mean(x, na.rm = TRUE))

示例结果验证

拿你提供的示例数据计算,得到的结果如下:

group_idvalue_mean
122.3333
224.5
328
425

完全符合你要求的分组规则:固定每5行一组,组内仅对非NA值求均值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 22:54:03