如何在一个xts对象中赋值给日期



我假设下面的代码

date = as.Date('2015-05-30')
timeseries = xts()
timeseries[date] = 1

应该将值1赋值给日期'2015-05-30'。然而,它给了我一个错误

Error in xts(rep(NA, length(index(x))), index(x)) : 
  order.by requires an appropriate time-based object

给一个空的xts对象赋值的正确方法是什么?

谢谢,弗拉基米尔。

我想你误解了[<-.xts函数的目的。您要求将日期"2015-05-30"的值替换为1,但是您的xts对象没有数据,因此没有什么可替换的。你到底想要完成什么?

如果你想插入,你应该调用rbind(xts(1, as.Date('2015-05-30')), timeseries)


你应该听从Mike Wise的明智建议:像这样增长对象是非常低效的。

试试这样:

d1 <- rep(1,21)
d2 <- seq(as.Date("2001-01-01",tz="GMT"),as.Date("2021-01-01",tz="GMT"),length.out=21)
xtsdat <- as.xts(d1,d2)

如果您需要逐行构建它,然后以这种方式构建单个向量并在最后形成xts。

最新更新