将xts或zoo时间序列对象的每一行除以固定行

时间:2011-12-21 19:13:42

标签: r xts zoo

我试图划分一个xts对象,该对象包含多个时间序列(列;具有公共日期列(索引)。我想在指定日期将每列除以其值(例如'2010-09- 30')。这是为了重新缩放整个对象,在该日期每列中的值为1(一个常见的重新基础任务)。它是一个普通的矩阵,A和行我想改变说法是A[6,],我可以做到

t(t(A)/A[6,])

这是有效的。但是,尝试操纵xts对象及其行子集xts['2010-09-30']并不容易。有人可以指出我正确的方向。我意识到这是非常基本的,我应该自己找到答案。事实上,如果有一种更好的方法可以使用包以这种方式改变时间序列,我很乐意采用这种方法。

1 个答案:

答案 0 :(得分:3)

xts和zoo对象在操作之前按索引对齐。如果要将整个对象除以单行的值,则必须使用coredata(可能drop)来获取原子向量的值(只有一个元素)。 / p>

例如:

library(xts)
x <- xts(1:10,as.Date("2011-12-21")+1:10)
x / drop(coredata(x['2011-12-26']))