Как добавить новое значение в объект xts без создания нового

У меня есть объект xts, например

ts=xts(seq(10),seq(Sys.Date(),Sys.Date()+10,length.out=10))

и нужно добавить новую точку, например

(Sys.Date()+11, 11)

я пытался

ts[Sys.Date()+11] <- 11

но это не работает. Я бы предпочел не создавать новый объект xts. Есть ли элегантный способ сделать это.


r xts
person LouisChiffre    schedule 01.12.2011    source источник


Ответы (1)


Вы можете использовать c или rbind для объекта xts для добавления построчно:

c(ts, xts(11, Sys.Date()+11))

ИЗМЕНИТЬ:

Обратите внимание, что это выдает предупреждение mismatched types: converting objects to numeric. Чтобы удалить предупреждение, сначала приведите значение к числовому, например:

c(ts, xts(as.integer(11), Sys.Date()+11))

           [,1]
2011-12-01    1
2011-12-02    2
2011-12-03    3
2011-12-04    4
2011-12-05    5
2011-12-06    6
2011-12-07    7
2011-12-08    8
2011-12-09    9
2011-12-11   10
2011-12-12   11
person Andrie    schedule 01.12.2011
comment
Я получаю следующее предупреждение, у вас также есть? Warning message: In c.xts(ts, xts(11, Sys.Date() + 11)) : mismatched types: converting objects to numeric - person LouisChiffre; 01.12.2011
comment
@LouisChiffre Я отредактировал ответ. Вы можете удалить предупреждение, явно приведя данные к целому числу перед переходом к xts - person Andrie; 01.12.2011