如何在R语言中提取每周最后一小时的气象数据?
提取每周最后一小时的气象数据
针对你的需求——从按15分钟间隔采集的多周气象数据集中提取每周最后一小时的数据(即每组周数据的最后4行),以下是两种可行的实现方法:
方法1:使用dplyr包(简洁直观)
借助dplyr的分组与切片功能,可快速筛选出每组周数据的最后4行:
library(dplyr) # 按周分组,提取每组最后4行 df_last_hour <- df %>% group_by(week) %>% slice_tail(n = 4) %>% ungroup() # 验证第15周的结果(对应原数据的147-150行) df_last_hour %>% filter(week == "15")
方法2:使用Base R(无需额外包)
若不想加载第三方包,可通过base R的分组操作实现需求:
# 按week拆分数据,提取每个分组的最后4行后合并 df_last_hour_base <- do.call(rbind, lapply(split(df, df$week), function(x) tail(x, 4))) # 验证结果 df_last_hour_base[df_last_hour_base$week == "15", ]
说明
- 两种方法均会保留每个
week分组的最后4条记录,对应每周最后一小时的15分钟间隔数据。 - 示例数据中每周仅包含10条记录,实际应用中即使每周有完整的672条(7天×24小时×4个15分钟间隔),代码逻辑依然适用。
内容的提问来源于stack exchange,提问作者Ahsk
相关产品推荐
相关产品推荐

