r语言 - 按一天中的小时创建变量因子



我有几天的观测:三个日期和连续时间(00:00:00 - 23:59:59(,格式为"yyyy-mm-dd %H:%M:%S"。我想创建对应于 23 个休息时间(一天中的小时(的分类变量,即 00:00-01:00、01:00-02:00 ,..., 23:00-00:00。以便将日期时间"yyyy-mm-dd 22:51:03"转换为 22:00-23:00。cut.POSIXct每天分别休息数小时

cut.POSIXct(df$datetime, breaks = "hours", include.lowest = T) # factor variable of 69 levels

或休息数天

cut.POSIXct(df$datetime, breaks = "days", include.lowest = T) # factor variable of 3 levels

如何获得 23 个水平的因子变量?

如果datetime已经采用POSIXct格式,一种方法是从每个值中提取小时数,将它们转换为factor,然后转换为integer这样,无论日期如何,每小时都有一个级别。

df$level <- as.integer(factor(format(df$datetime, "%H")))

如果datetime不在POSIXct您可能需要先更改它

df$datetime <- as.POSIXct(df$datetime)

最新更新