我目前正在处理存储在数据框中的数据,时间在一列中。我必须把一整天分成几个时段。到目前为止,我一直在根据完整的时间来做这件事
workingdata <- read.csv(filename)
workingdata$dateI <- as.POSIXlt(workingdata$dateI,format="%Y-%m-%d %H:%M:%S")
workingdata$hourI <- workingdata$dateI$hour
workingdata$shift <- cut(workingdata$hourI, breaks=c(0,6,13,23),
labels=c("morning","midday","evening"),
include.lowest=TRUE,right=TRUE)
这很好用,并创建了三个级别的因子 -morning
从 0:00 到 6:59、midday
从 7:00 到 13:59 以及evening
从 14:00 到 23:59 的时间。
现在我想做类似的事情,但基于分钟/秒的削减,例如midday
从11:34:12
. 有没有办法通过纯粹基于 POSIXlt 的削减来做到这一点?最好的方法是什么?
编辑:我尝试将剪切指定为 POSIXlt 对象,但它似乎总是包含日期,所以这不是我想要的......
> brk<-as.POSIXlt("11:34:12",format="%H:%M:%S")
> brk
[1] "2012-11-16 11:34:12"