2016-11-01 44 views
0

考虑treerings数据集。如何从r对象中提取时间戳

library("datasets", lib.loc="C:/Program Files/R/R-3.3.1/library") 
tr<-treering 

length(tr) 
[1] 7980 

class(tr) 
[1] "ts" 

从我的理解,这是我如何可以找出时间戳是每个值时间序列长度7980 的?

在绘制时间序列之后,看图的x轴,看起来时间戳范围在-6000到2000之间。但对我来说,时间戳看起来是“隐藏的”。

plot(tr) 

更普遍的,我想了解到底什么是ts对象,什么是使用这种类型的对象的好处。

单变量和多变量时间序列可以很容易地显示在具有2列或更多列的数据框中:时间和变量。

univariatetimeseries <- data.frame(Time = c(0, 1, 2, 3, 4, 5, 6), y = c(1, 2, 3, 4, 5, 6, 7)) 
multivariatetimeseries <- data.frame(Time = c(0,1,2,3,4,5,6), y = c(1, 2, 3, 4, 5, 6, 7), z = c(7,6,5,4,3,2,1)) 

这对我来说似乎很简单直接,它与我在高中时学到的基础科学范例一致。此外,时间戳不像“treering”示例的情况那样“隐藏”。那么使用ts对象有什么好处?

回答

2

为了方便起见,类的对象带有许多通用函数。对于“ts”对象类来说,有ts.plot,plot.ts等。如果将时间序列存储为数据框,则在绘制它们时必须自己做很多工作。

也许对于季节性时间序列,使用“ts”的优势更明显。例如,x <- ts(rnorm(36), start = c(2000, 1), frequency = 12)可生成3年的月度时间序列。当您打印x时,print方法将很好地将其排列为矩阵。

“ts”对象具有许多属性。建模例如arima0arima的拟合程序可以看到这些属性,因此您无需手动指定它们。

对于你的问题,有很多功能来提取/设置时间序列的属性。看看?start,?tsp,?time,?window