【问题标题】:15 minutes to hours in R在 R 中 15 分钟到几小时
【发布时间】:2022-12-16 07:25:28
【问题描述】:

我有一个间隔 15 分钟的时间序列。 我想使用 R 将其更改为 1 小时间隔。因此测量结果也将加在一起。 你能帮我解决这个问题吗? 之后是否可以将其从几个小时更改为一个月?

数据框如下:

timestamp (UTC)     value
2020-06-11 22:15:00 5,841
2020-06-11 22:30:00 5,719
2020-06-11 22:45:00 5,841
2020-06-11 23:00:00 5,841
2020-06-11 23:15:00 5,597
2020-06-11 23:30:00 5,232
2020-06-11 23:45:00 5,476
2020-06-12 0:00:00  4,259
2020-06-12 0:15:00  0,243
2020-06-12 0:30:00  0,243
2020-06-12 0:45:00  0,365
2020-06-12 1:00:00  0,243

【问题讨论】:

    标签: r time time-series


    【解决方案1】:

    根据你的计算方式,一个小时后的每15分钟属于下一个小时,你可以使用lubridate::ceiling_date(22:15 => 23:00),如果属于同一小时,则使用lubridate::floor_date(22:15 => 22:00)。

    library(dplyr)
    library(lubridate)
    
    # option 1
    df1 %>% 
      mutate(timestamp = ceiling_date(timestamp, unit = "hour")) %>% 
      group_by(timestamp) %>% 
      summarise(value = sum(value))
    
    # A tibble: 3 × 2
      timestamp           value
      <dttm>              <dbl>
    1 2020-06-11 23:00:00 23.2 
    2 2020-06-12 00:00:00 20.6 
    3 2020-06-12 01:00:00  1.09
    
    
    #option 2
    df1 %>% 
      mutate(timestamp = floor_date(timestamp, unit = "hour")) %>% 
      group_by(timestamp) %>% 
      summarise(value = sum(value))
    
    # A tibble: 4 × 2
      timestamp            value
      <dttm>               <dbl>
    1 2020-06-11 22:00:00 17.4  
    2 2020-06-11 23:00:00 22.1  
    3 2020-06-12 00:00:00  5.11 
    4 2020-06-12 01:00:00  0.243
    

    数据:

    df1 <- structure(list(timestamp = structure(c(1591906500, 1591907400, 
    1591908300, 1591909200, 1591910100, 1591911000, 1591911900, 1591912800, 
    1591913700, 1591914600, 1591915500, 1591916400), class = c("POSIXct", 
    "POSIXt"), tzone = ""), value = c(5.841, 5.719, 5.841, 5.841, 
    5.597, 5.232, 5.476, 4.259, 0.243, 0.243, 0.365, 0.243)), row.names = c(NA, 
    -12L), class = "data.frame")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-18
      • 2021-06-26
      • 1970-01-01
      • 2019-08-03
      相关资源
      最近更新 更多