首页 > 解决方案 > 如何计算R中多年每年特定日期的平均值?

问题描述

我想计算每年特定时间段的平均温度(t)。

我有天气数据,可以为我提供每一天的价值。我的真实数据是从 2011 年到 2019 年,并且所有年份都有所有的日子,我想例如每年 4 月 20 日至 5 月 15 日的平均温度。

示例数据:

df <- data.frame(matrix(ncol = 4, nrow = 8))
x <- c("year", "month","day","t")
colnames(df) <- x
df$year <- c(2011,2011,2011,2011,2012,2012,2012,2012)
df$month <- c(3,3,4,4,3,3,4,4)
df$day <- c(1,2,3,4,1,2,3,4)
df$t <- c(1,3,6,1,2,7,1,-9)

我确实设法用一个非常丑陋且耗时的代码来做到这一点,但缺乏知识阻止了我的前进。

先感谢您。

标签: rdateweather

解决方案


tidyverse可以做类似的事情:

library(tidyverse)

Data %>%
  filter((month == 4 & day >= 20) |
         (month == 5 & day <= 15)) %>%
  group_by(year) %>%
  summarise(mean_temp = mean(t))

推荐阅读