3

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

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

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

4

1 回答 1

3

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

例如:

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