【问题标题】:problem with hour interval in time series data in rr中时间序列数据中的小时间隔问题
【发布时间】:2020-10-13 12:02:42
【问题描述】:

我刚开始使用 R,但我在下载历史每小时电力负荷数据时遇到了问题。我的目标是根据 ARIMA 模型和/或人工神经网络进行负荷预测。

问题在于数据采用以下日期时间(每小时)格式:

#>      DateTime                              Day_ahead_Load Actual_Load
#> [1,] "01.01.2015 00:00 - 01.01.2015 01:00" "6552"         "6100"     
#> [2,] "01.01.2015 01:00 - 01.01.2015 02:00" "6140"         "5713"     
#> [3,] "01.01.2015 02:00 - 01.01.2015 03:00" "5950"         "5553"

我尝试制作一个 POSIXct 对象,但没有成功:

as.Date.POSIXct(DateTime, format = "%d-%m-%Y %H:%M:%S", tz="EET", usetz=TRUE)

我得到的信息是它不是一个明确的格式。我非常感谢您对此的反馈。 提前谢谢你。

最好的问候,

【问题讨论】:

  • 您好 Iro,这是一个问答网站,专注于回答特定编程问题。它不是一个教程网站。也就是说,一些用户可能会选择回答如此广泛的问题。为了获得最佳答案,请提供您下载的数据的链接,并准确说明您的目标是什么。请参阅How to make a reproducible example 了解更多信息。
  • 感谢您的指导,我提供了前 3 行数据的副本。问题是我无法制作 POSIXct 对象,因为无法识别日期/时间格式。

标签: r time series intervals


【解决方案1】:

您有两个主要问题。首先,您的 DateTime 列包含两个日期,因此您需要将该列拆分为两个。其次,您的格式参数有 - 字符,但您的日期有 . 字符。

我们可以使用tidyrmutate 中的separateacross 将列更改为POSIXct

 library(dplyr)
 library(tidyr)
 data %>% 
   separate(DateTime, c("StartDateTime","EndDateTime"), " - ") %>%
   mutate(across(c("StartDateTime","EndDateTime"),
                 ~ as.POSIXct(., format = "%d.%m.%Y %H:%M",
                              tz="EET", usetz=TRUE)))
        StartDateTime         EndDateTime Day_ahead_Load Actual_Load
1 2015-01-01 00:00:00 2015-01-01 01:00:00           6552        6100
2 2015-01-01 01:00:00 2015-01-01 02:00:00           6140        5713
3 2015-01-01 02:00:00 2015-01-01 03:00:00           5950        5553

【讨论】:

    猜你喜欢
    • 2012-05-15
    • 2018-09-23
    • 2021-07-16
    • 2020-01-31
    • 1970-01-01
    • 2017-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多