将时间戳切换为R中的数字槽

时间:2017-02-18 16:39:49

标签: r timestamp

我有时间戳列,其格式为2016-01-01 00:41:23

我想将这些数据转换为整个数据集中每个2小时的12个插槽。数据并不重要,只需要考虑时间。

00:00:00 - 01:59:59 - slot1
02:00:00 - 03:59:59 - slot2
.......
22:00:00 - 23:59:59 - slot12

我如何在R?

中实现这一目标
x <- c("01:59:59", "03:59:59", "05:59:59",
   "07:59:59", "09:59:59", "11:59:59",
   "13:59:59", "15:59:59", "17:59:59",
   "19:59:59", "21:59:59", "23:59:59")

cut(pickup_time, breaks = x)

上面的代码给出了错误::'x'必须是数字

1 个答案:

答案 0 :(得分:2)

将您的数据框视为df,我们可以cut使用breaks 2小时。

df$slotnumber <- cut(strptime(df$x, "%H:%M:%S"), breaks = "2 hours", 
                                                labels = paste0("slot", 1:12))

#      x       slotnumber
#1  01:59:59      slot1
#2  03:59:59      slot2
#3  05:59:59      slot3
#4  07:59:59      slot4
#5  09:59:59      slot5
#6  11:59:59      slot6
#7  13:59:59      slot7
#8  15:59:59      slot8
#9  17:59:59      slot9
#10 19:59:59     slot10
#11 21:59:59     slot11
#12 23:59:59     slot12

数据

df <- data.frame(x)