我假设下面的代码
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。