如何转换日期和时间间隔以适应 R 中的时间序列模型
how to convert date and time interval to fit a time series model in R
我有以下数据集,我正在尝试从变量创建时间序列模型。
>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)
但是鉴于上述数据在日期和时间间隔上都是唯一的,该怎么做呢?
由于 Date
和 TimeSlot
的组合是独一无二的,您唯一需要做的就是从中创建一个 POSIXct
class。
时间 class 的形式 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)
我有以下数据集,我正在尝试从变量创建时间序列模型。
>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)
但是鉴于上述数据在日期和时间间隔上都是唯一的,该怎么做呢?
由于 Date
和 TimeSlot
的组合是独一无二的,您唯一需要做的就是从中创建一个 POSIXct
class。
时间 class 的形式 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)