当我在数据框中使用strptime函数时,日期格式看起来正确。但是,当我随后将其转换为ts(时间序列)时,可以使用诸如预测之类的功能时,数据列看起来像胡言乱语,通常很难看清它是否正确。考虑下面的代码。...
qtr <- c("03/01/2000","06/01/2000","09/01/2000","12/01/2000","03/01/2001","06/01/2001","09/01/2001","12/01/2001")
qtr <- strptime(as.character(qtr), format = "%m/%d/%Y",tz="EST")
dem <- c(1342,1382,1296, 1330, 1360, 1441,1343,1426)
# create data frame
data <- data.frame(qtr,dem)
data
我输入数据时的输出如下:
# qtr dem
# 1 2000-03-01 1342
# 2 2000-06-01 1382
# 3 2000-09-01 1296
# 4 2000-12-01 1330
如预期。但是,当我将其转换为如下所示的时间序列时,会得到一个额外的列。
ts=ts(data, start=c(2000,1), end= c(2001,4),frequency=4)
ts
输出:
# qtr dem
# 2000 Q1 951886800 1342
# 2000 Q2 959835600 1382
# 2000 Q3 967784400 1296
# 2000 Q4 975646800 1330
[此外,如果我执行视图(即View(ts)),则只能看到第二列和第三列,而且很难弄清楚日期是什么意思。中间列的格式是什么? 975646800中的数字代表什么?
如果在ts对象中指定data$dem
,则结果应符合您的期望。
qtr <- c("03/01/2000","06/01/2000","09/01/2000","12/01/2000","03/01/2001","06/01/2001","09/01/2001","12/01/2001")
qtr <- strptime(as.character(qtr), format = "%m/%d/%Y",tz="EST")
dem <- c(1342,1382,1296, 1330, 1360, 1441,1343,1426)
# create data frame
data <- data.frame(qtr,dem)
myts <- ts(data$dem, start=c(2000, 3), end=c(2001, 12), frequency=4)
myts
#> Qtr1 Qtr2 Qtr3 Qtr4
#> 2000 1342 1382
#> 2001 1296 1330 1360 1441
#> 2002 1343 1426 1342 1382
#> 2003 1296 1330 1360 1441
由reprex package(v0.3.0)在2020-01-29创建