如何为 R 中的 xts 对象中的日期赋值

How to assign value to a date in an xts object in R

我假定以下代码

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 对象的正确方法是什么?

谢谢, 弗拉基米尔

尝试这样的事情:

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。

我认为您误解了 [<-.xts 函数的用途。您要求将日期 "2015-05-30" 的值替换为 1,但您的 xts 对象没有数据,因此没有可替换的内容。您实际上想要完成什么?

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


你应该注意:像这样增长对象是非常低效的。