我有一些每分钟带有时间戳的数据,如下所示:
date time_greece gmt_offset_greece price_greece time_and_date
gmt_offset_greece_test time_and_date_correct time_and_date_difference ID
1 2009-12-01 08:30:04.548 +2 2275.32 2009-12-01 08:30:04.548 2 2009-12-01 06:30:04 0 1
我想对5分钟,30分钟间隔等进行不同的分析。此刻,我已经基于行号和30之间的模运算创建了一个ID(我将对5分钟间隔进行类似的操作,等等。 )
statadata$ID <- seq.int(nrow(statadata))
statadata$ID <- seq.int(nrow(statadata)) %% 30
我的问题是,有没有比我目前所使用的更有效的方式来实现这一点,而我从未想到过/不知道?
答案 0 :(得分:0)
包lubridate
作为日期和日期时间的舍入函数,可以舍入到任意时间单位,例如5分钟,30分钟,以及地板和天花板。有了这个,您应该可以将间隔定义为简单lubridate::round(date_time_greece, '5 minutes')
。
与所有用于数据分析的装仓操作一样,请注意您的小组。即您的分组/合并操作是否仅用一个数据点就创建了许多组。