首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R内时间序列(ColumnSorting)

R内时间序列(ColumnSorting)
EN

Stack Overflow用户
提问于 2020-05-28 19:48:09
回答 1查看 32关注 0票数 0

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

实时数据的一个示例是

代码语言:javascript
复制
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等)。找出每段时间内发生的次数。我创建了一个要通过R访问的新csv文件,这样我就不会破坏原始数据集的格式。

代码语言:javascript
复制
Date:  
2019-06-01 08:00  
2019-06-01 08:30  
2019-06-01 09:00  
2019-06-01 09:30  

我首先构建了一个30分钟间隔的列表,方法是:

代码语言:javascript
复制
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比较陌生,请在你力所能及的地方提供帮助。非常感谢。

EN

回答 1

Stack Overflow用户

发布于 2020-05-30 03:53:48

对于这样的事情,您可能不需要timeDate包。lubridate是一个对操作日期和时间非常有帮助的包--您可能想要继续使用它。

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

要创建30分钟间隔,您可以使用cutseq.POSIXt来创建具有30分钟中断的日期/时间序列。我最初使用的是您的最小日期/时间(向下舍入到最近的小时),但您也可以在此处指定其他日期/时间。

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

代码语言:javascript
复制
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"))))

输出

代码语言:javascript
复制
                 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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62063945

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档