簡體   English   中英

R Select 多年的日期范圍並計算平均值

[英]R Select date range over multiple years and calculate mean of values

我有一個數據框,每小時數據運行超過 5 年。 我想計算幾年內兩個日期(例如,3 月 15 日至 4 月 15 日)之間的值的每小時平均值(即一天中每個小時的平均值,1:24),並將其與每小時進行比較去年的平均值。

以下是數據示例:

start = as.POSIXct(strptime("2011-01-01 01:00", "%Y-%m-%d %H:%M"))
end   = as.POSIXct(strptime("2016-01-01 01:00", "%Y-%m-%d %H:%M"))
df = data.frame(DateTime = seq(from = start, to = end,by = "hours"))
df$value = runif(nrow(df))

Start_Period = "03-15"
End_Period = "04-15"

output 應如下所示:

Hour   mean(2011-2014) mean(2015)
1      0.3             0.5
...
24     0.8             0.6

我們可以根據“開始”、“結束”日期進行filter ,然后按“小時”“年”進行分組並獲得mean

library(lubridate)
library(dplyr)   
df %>%
    filter((day(DateTime) >= 15 & month(DateTime) == 3)|
          (day(DateTime) <= 15 & month(DateTime) ==  4))   %>% 
    group_by(hour = hour(DateTime), year = year(DateTime)) %>% 
    summarise(value = mean(value))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM