2017-09-25 72 views
1

我有半年(半年)数据点的时间序列。R - 用半年度数据分析时间序列?

看来,ts()函数无法处理,因为“频率= 2”会返回一个非常奇怪的时间序列对象,它延伸的时间远远超出实际时间段。

R有没有办法对这种时间序列对象进行时间序列分析?

编辑:下面是一个例子:

dat <- seq(1, 17, by = 1) 
> semi <- ts(dat, start = c(2008,12), frequency = 2) 
> semi 
Time Series: 
Start = c(2013, 2) 
End = c(2021, 2) 
Frequency = 2 
[1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 

我期待:

> semi 
     s1  s2 
2008   1 
2009 2  3 
2010 4  5 
2011 6  7 
2012 8  9 
2013 10  11 
2014 12  13 
2015 14  15 
2016 16  17 
+0

我用'deltat = 1/2'试过了,似乎有效。 '半< - c(1:12)''semi_ts < - ts(半,start = 2000,deltat = 1/2)'。 ....对不起,我刚刚与'frequency = 2'进行了比较,结果相同:'> semi_ts 时间系列: Start = c(2000,1) End = c(2005,2) Frequency = 2 [1 ] 1 2 3 4 5 6 7 8 9 10 11 12' –

+0

您是否提供了正确的'start ='?这可能导致'ts'以意想不到的方式改变时间。 – useR

+0

@wolf_wue如果设置'frequency = 2':'semi_ts <-ts(semi,start = 2000,frequency = 2)''START START = c(2000),那么你的例子也可以正常工作(并给出相同的答案) ,1)'和'END = c(2005,2)' – Eumenedies

回答

1

首先让我解释为什么第一TS元素在2013在2008年的功能开始和结束代替开始与周期/频率一起工作。你选择了12期2008年后,这是在2013年第二期,如果你的频率是2

这应该期间的工作:

semi <- ts(dat, start = c(2008,2), frequency = 2) 

不过半给出正确的时间序列,但它不知道频率为2的名称。如果绘制时间序列,则会显示正确的半年图。

plot.ts(semi) 

In this problem有人解释了ts()知道的标准频率。

+0

谢谢!开始的时间应该是2(下半年),而不是12月的12。 – SiKiHe