2014-10-29 60 views
0

我有20天的10月份数据。这些数据来自不同的部门,但具有相同的列。 有46个变量(列),看起来像这样:时间序列数据对象为1个月R

Date X24K.Equivalent.Plan X24K.Equivalent.Act Plan.Rep.WS Act.Rep.WS Rep.WS.Var Plan.Rep.Intakes 
1 2014-10-18     29.0    28.8  2463  2447  -16    568 
2 2014-10-19     29.6    31.0  2513  2633  120    461 
3 2014-10-20     33.8    35.4  2869  3013  144    1159 
4 2014-10-21     36.6    35.9  3115  3054  -61    1146 
5 2014-10-22     35.3    34.7  2999  2953  -46    1126 
6 2014-10-23     31.9    33.4  2714  2842  128    1124 

注意我只是只显示7列。

我想这个月的数据转换成时间序列的对象,这样我可以做一些时间序列分析等 我的问题是:

1相同的数据来源于4个其他业务单元,我有创建4个时间序列对象?如果是的话,我该如何在同一时间序列图上绘制变化/性能差异?

2 - 我不能积十余变量:/

我试过如下:

#convert date column into date format and add id 
library(lubridate) 
bvg1$Date = dmy(bvg1$Date) 

> bvg1 
     Date X24K.Equivalent.Plan X24K.Equivalent.Act Plan.Rep.WS Act.Rep.WS Rep.WS.Var Plan.Rep.Intakes 
1 2014-10-18     29.0    28.8  2463  2447  -16    568 
2 2014-10-19     29.6    31.0  2513  2633  120    461 
3 2014-10-20     33.8    35.4  2869  3013  144    1159 
4 2014-10-21     36.6    35.9  3115  3054  -61    1146 
5 2014-10-22     35.3    34.7  2999  2953  -46    1126 
6 2014-10-23     31.9    33.4  2714  2842  128    1124 
7 2014-10-24     29.0    31.9  2468  2714  246    1106 

如果我将其转换为时间序列:

ts_bvg1 = ts(bvg1_withoutID) 

它显示了一个奇怪的日期:

Date X24K.Equivalent.Plan X24K.Equivalent.Act Plan.Rep.WS Act.Rep.WS Rep.WS.Var Plan.Rep.Intakes 
1 1413590400     29.0    28.8  2463  2447  -16    568 
2 1413676800     29.6    31.0  2513  2633  120    461 
3 1413763200     33.8    35.4  2869  3013  144    1159 
4 1413849600     36.6    35.9  3115  3054  -61    1146 
5 1413936000     35.3    34.7  2999  2953  -46    1126 
6 1414022400     31.9    33.4  2714  2842  128    1124 
7 1414108800     29.0    31.9  2468  2714  246    1106 

如果我做到以下几点:

ts_bvg1 = ts(bvg1_withoutID, start=2014) 

仍显示在奇怪格式的日期,但是从2014年起增加了一年 - 2020等

> ts_bvg1 
Time Series: 
Start = 2014 
End = 2020 
Frequency = 1 
      Date X24K.Equivalent.Plan X24K.Equivalent.Act Plan.Rep.WS Act.Rep.WS Rep.WS.Var Plan.Rep.Intakes 
2014 1413590400     29.0    28.8  2463  2447  -16    568 
2015 1413676800     29.6    31.0  2513  2633  120    461 
2016 1413763200     33.8    35.4  2869  3013  144    1159 
2017 1413849600     36.6    35.9  3115  3054  -61    1146 
2018 1413936000     35.3    34.7  2999  2953  -46    1126 
2019 1414022400     31.9    33.4  2714  2842  128    1124 
2020 1414108800     29.0    31.9  2468  2714  246    1106 

我怎么能强迫它每日,而不是每月或每年的治疗观察?

感谢

+0

感谢您显示数据形状。如果我们有可重复的例子,这真的很棒,这个数据是公开的吗?按照他的方式,你奇怪的日期可能是自Unix时代以来的秒数 – 2014-10-29 20:23:00

+0

嗨感谢您的评论。没有这个数据集是我的组织内部的,我无法与外界分享。任何想法如何解决我的问题。恐怕你对奇怪的日期格式是正确的。 – Shery 2014-10-29 20:35:37

+0

我明白了,这是非常普遍的问题(机密数据)。这是一种痛苦,但如果你希望人们能够在这里帮助你,那么我们推荐的方法是用公共数据重现你的错误,然后让我们帮助你使用公共数据。顺便说一句,我能够成功地转换这些时间戳tho。复制其中一个奇怪的日期并将其粘贴在这里http://www.epochconverter.com/ – 2014-10-29 20:46:17

回答

0

我已经使用zoo包解决了这个问题。

我做了以下内容:

library(zoo) 
ts_bvg1 = zoo(bvg1, order.by=bvg1$Date) 

> ts_bvg1 
      Date  X24K.Equivalent.Plan X24K.Equivalent.Act Plan.Rep.WS Act.Rep.WS Rep.WS.Var Plan.Rep.Intakes 
2014-10-18 2014-10-18 29.0     28.8    2463  2447  -16   568    
2014-10-19 2014-10-19 29.6     31.0    2513  2633  120   461    
2014-10-20 2014-10-20 33.8     35.4    2869  3013  144  1159    
2014-10-21 2014-10-21 36.6     35.9    3115  3054  -61  1146    
2014-10-22 2014-10-22 35.3     34.7    2999  2953  -46  1126    
2014-10-23 2014-10-23 31.9     33.4    2714  2842  128  1124    
2014-10-24 2014-10-24 29.0     31.9    2468  2714  246  1106    

现在的问题是与绘制这个数据作为一个时间序列。 这是我做过什么:

> plot(ts_bvg1$X24K.Equivalent.Plan, col="red") 
Error in plot.window(...) : invalid 'ylim' value 

我已经尝试了不同的栏目,并得到同样的错误。

如果我打印ts_bvg1$X24K.Equivalent.Plan这就是它的样子:

> ts_bvg1$X24K.Equivalent.Plan 
2014-10-18 2014-10-19 2014-10-20 2014-10-21 2014-10-22 2014-10-23 2014-10-24 
     29.0  29.6  33.8  36.6  35.3  31.9  29.0 

任何想法,现在怎么绘制呢?或者将其与其他参数一起绘制在同一个图上?