RStudio新手求教:如何按每2小时间隔计算ParticleCount平均值
按2小时间隔计算颗粒物计数平均值的R代码方案
方法一:基于时间字段分组(推荐,适配时间间隔不均的情况)
如果你的时间数据可能存在缺失或间隔不固定,优先用这种方法,基于实际时间戳分组:
- 加载依赖包
library(lubridate) library(dplyr)
- 合并零散时间字段为完整时间戳
假设你的数据集名为df,包含year、month、day、hour、minute、second列:
df$datetime <- make_datetime(df$year, df$month, df$day, df$hour, df$minute, df$second)
- 生成2小时间隔分组标识
将时间戳向下取整到最近的2小时节点(比如00:00、02:00、04:00等):
df$two_hour_window <- floor_date(df$datetime, "2 hours")
- 分组计算平均值
avg_result <- df %>% group_by(two_hour_window) %>% summarise( avg_particle_count = mean(ParticleCount, na.rm = TRUE), .groups = "drop" # 取消分组状态,返回普通数据框 )
方法二:按固定行数分组(仅适用于数据严格每10分钟一条的情况)
如果你的数据是严格每10分钟记录一行(2小时刚好12行),可以直接按行号分组:
# 生成每12行一组的分组标识 df$group_id <- gl(n = ceiling(nrow(df)/12), k = 12, length = nrow(df)) # 计算分组均值 avg_result <- df %>% group_by(group_id) %>% summarise( avg_particle_count = mean(ParticleCount, na.rm = TRUE), .groups = "drop" )
说明
na.rm = TRUE用于忽略ParticleCount中的缺失值,若数据无缺失可移除该参数- 方法一的结果包含具体时间窗口,可读性更强;方法二仅生成分组序号,适合时间字段不可靠的场景
内容的提问来源于stack exchange,提问作者Maria
相关产品推荐
相关产品推荐

