从数据帧转换为时间序列 (ts) 后无法理解 strptime 的结果格式
Having trouble understanding the resulting format of strptime after converting from dataframe to time series (ts)
当我在数据框中使用 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-object 中指定 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 创建
当我在数据框中使用 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-object 中指定 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 创建