如何转换日期和时间间隔以适应R

时间:2015-11-06 09:35:20

标签: r date time time-series

我有以下数据集,我正在尝试从变量创建时间序列模型。

>Count
    Date        TimeSlot    UserCount
    2013/06/11  6.00-6.10   0
    2013/06/11  6.10-6.20   1
    2013/06/11  6.20-6.30   0
    2013/06/11  6.30-6.40   0
    2013/06/11  6.40-6.50   2
    2013/06/11  6.50-7.00   6

如何从上面的列变量创建时间序列。?

我是时间序列分析的新手,我知道给定不同的日期值,我可以使用'xts'包创建时间序列,如下所示。

x <- xts(Count$UserCount,Count$Date)

但鉴于以上数据在日期和时间间隔都是独一无二的,如何才能做到这一点?

1 个答案:

答案 0 :(得分:3)

由于DateTimeSlot的组合是唯一的,您唯一需要做的就是从中创建一个POSIXct类。

时间类没有必要采用6.00-6.10 , 6.10-6.20形式。您只能使用第一次,即6.00 , 6.10 etc.,显然暗示每行代表10分钟的间隔。这是您在使用聚合时间戳时所执行的操作。这是正常的方式。

所以,这样的事情会奏效:

Count$timestamp <- as.POSIXct(paste(Count$Date, substr(Count$TimeSlot,1,4)),
                              format='%Y/%m/%d %H.%M')

#> Count
#        Date  TimeSlot UserCount           timestamp
#1 2013/06/11 6.00-6.10         0 2013-06-11 06:00:00
#2 2013/06/11 6.10-6.20         1 2013-06-11 06:10:00
#3 2013/06/11 6.20-6.30         0 2013-06-11 06:20:00
#4 2013/06/11 6.30-6.40         0 2013-06-11 06:30:00
#5 2013/06/11 6.40-6.50         2 2013-06-11 06:40:00
#6 2013/06/11 6.50-7.00         6 2013-06-11 06:50:00

然后创建你的时间序列:

library(xts)
x <- xts(Count$UserCount, Count$timestamp)