2014-11-03 47 views
-1

我是R新手,想弄清楚如何操作具有沿行和列的日期的数据。在行和列上使用时间序列处理数据

基本上,我有一个日期的数据对象,比如说2014-10-31。这个对象包含期货结算价在几个月前进:

Date  2014-10-31 
2014-11-01  90.54 
2014-12-01  90.32 
2015-01-01  90.68 
2015-02-01  91.48 
2015-03-01  91.03 

这将存在一年每个工作日。现在,我想类似这样的东西:

Date  2014-10-28 2014-10-29 2014-10-30 2014-10-31 ... 
2014-11-01  90.54  90.53  90.57  90.54 ... 
2014-12-01  90.21  90.23  90.75  90.32 ... 
2015-01-01  90.70  90.45  90.65  90.68 ... 
2015-02-01  91.48  91.56  91.53  91.48 ... 
2015-03-01  91.02  91.03  91.01  91.03 ... 

目前,R I它作为一个列表,每一天都当作动物园的对象,与结算日期作为名称。我知道必须有更好的方法来处理这个问题。数据框架是更好的方法,还是有任何包装可以使这更容易?

我的最终目标是,例如,能够找到十月份的平均十一月价格。所以我需要得到所有10月份的专栏,并平均11月的所有价格。任何帮助,将不胜感激。

回答

2

如果你有这样的动物园对象的列表:

L <- structure(list(X2014.10.28 = structure(c(90.54, 90.21, 90.7, 
91.48, 91.02), index = structure(c(16375, 16405, 16436, 16467, 
16495), class = "Date"), class = "zoo"), X2014.10.29 = structure(c(90.53, 
90.23, 90.45, 91.56, 91.03), index = structure(c(16375, 16405, 
16436, 16467, 16495), class = "Date"), class = "zoo"), 
X2014.10.30 = structure(c(90.57, 
90.75, 90.65, 91.53, 91.01), index = structure(c(16375, 16405, 
16436, 16467, 16495), class = "Date"), class = "zoo"), 
X2014.10.31 = structure(c(90.54, 
90.32, 90.68, 91.48, 91.03), index = structure(c(16375, 16405, 
16436, 16467, 16495), class = "Date"), class = "zoo")), .Names = c("X2014.10.28", 
"X2014.10.29", "X2014.10.30", "X2014.10.31")) 

然后用cbind合并在一起成为一个单一的动物园对象:

z <- do.call(cbind, L) 

,并提供:

> class(z) 
[1] "zoo" 
> z 
      X2014.10.28 X2014.10.29 X2014.10.30 X2014.10.31 
2014-11-01  90.54  90.53  90.57  90.54 
2014-12-01  90.21  90.23  90.75  90.32 
2015-01-01  90.70  90.45  90.65  90.68 
2015-02-01  91.48  91.56  91.53  91.48 
2015-03-01  91.02  91.03  91.01  91.03 
+0

不。它的类'“动物园”''。我已经添加了相关的输出。 – 2014-11-03 20:40:53

+0

好吧,现在它是'动物园' – Vlo 2014-11-03 20:43:15

+0

它也是动物园。除了输出课程外,我没有改变任何内容。 – 2014-11-03 20:43:51