【问题标题】:Time Series within R (ColumnSorting)R中的时间序列(列排序)
【发布时间】:2020-09-15 17:22:07
【问题描述】:

我有一个带有时间戳的实时数据输入 csv,我希望将这些数据按 30 分钟的时间序列分组以进行分析。

实时数据的样本是

Date:  
2019-06-01 08:03:04  
2019-06-01 08:20:04  
2019-06-01 08:33:04  
2019-06-01 08:54:04  
...

我希望以 30 分钟的步长(即 08:30、09:00 等)将它们分组在一个表格中,以找出每个时间段内的发生次数。我创建了一个新的 csv 文件以通过 R 访问。这样我就不会破坏原始数据集的格式。

Date:  
2019-06-01 08:00  
2019-06-01 08:30  
2019-06-01 09:00  
2019-06-01 09:30  

我首先通过以下方式构建了一个 30 分钟间隔的列表:

sheet_csv$Date <- as.POSIXct(paste(sheet_csv$Date), format = "%Y-%m-%d %H:%M", tz = "GMT") #to change to POSIXct
sheet_csv$Date <- timeDate::timeSequence(from = "2019-06-01 08:00", to = "2019-12-03 09:30", by = 1800,
                           format = "%Y-%m-%d %H:%M", zone = "GMT") 

我在此时间间隔遇到错误"Error in x[[idx]][[1]] : this S4 class is not subsettable"

我对 R 比较陌生。请尽你所能提供帮助。不胜感激。

【问题讨论】:

    标签: r date columnsorting


    【解决方案1】:

    你可能不需要timeDate 包来做这样的事情。 lubridate 是一个对操作日期和时间非常有帮助的软件包 - 您可能需要考虑继续前进。

    我使用了您的示例并添加了另一个日期/时间以进行说明。

    要创建 30 分钟的间隔,您可以使用 cutseq.POSIXt 创建具有 30 分钟休息时间的日期/时间序列。我使用了您的最小日期/时间开始(四舍五入到最接近的小时),但您也可以在此处指定另一个日期/时间。

    使用table 将在cut 之后为您提供频率。

    sheet_csv <- data.frame(
      Date = c("2019-06-01 08:03:04", 
               "2019-06-01 08:20:04", 
               "2019-06-01 08:33:04", 
               "2019-06-01 08:54:04", 
               "2019-06-01 10:21:04")
    )
    
    sheet_csv$Date <- as.POSIXct(sheet_csv$Date, format = "%Y-%m-%d %H:%M:%S", tz = "GMT")
    
    as.data.frame(table(cut(sheet_csv$Date, 
                            breaks = seq.POSIXt(from = round(min(sheet_csv$Date), "hours"), 
                                         to = max(sheet_csv$Date) + .5 * 60 * 60, 
                                         by = "30 min"))))
    

    输出

                     Var1 Freq
    1 2019-06-01 08:00:00    2
    2 2019-06-01 08:30:00    2
    3 2019-06-01 09:00:00    0
    4 2019-06-01 09:30:00    0
    5 2019-06-01 10:00:00    1
    

    【讨论】:

      猜你喜欢
      • 2023-03-15
      • 1970-01-01
      • 2011-04-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多