我有以下数据集,我正在尝试从变量创建时间序列模型。
>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)
但鉴于以上数据在日期和时间间隔都是独一无二的,如何才能做到这一点?
答案 0 :(得分:3)
由于Date
和TimeSlot
的组合是唯一的,您唯一需要做的就是从中创建一个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)