R xts, как объединить два xts / zoo с перекрывающимися временными рамками и основным и вторым днем - PullRequest
0 голосов
/ 22 февраля 2019

У меня есть два xts / zoo, один главный, другой второй день.Я хочу объединить их по строкам.Два xts / zoo могут иметь дублированный индекс с разными значениями.Если индекс дублирован, основные строки должны остаться.Например,

mainXts
2019-02-26    4
2019-02-27   90
2019-02-28    6
2019-03-01    7
2019-03-02    8
2019-03-03    9
2019-03-04   10

secondaryXts
2019-02-23    1
2019-02-24    2
2019-02-25    3
2019-02-26    4
2019-02-27    5
2019-02-28    6

Результат должен быть

2019-02-23    1
2019-02-24    2
2019-02-25    3
2019-02-26    4
2019-02-27   90
2019-02-28    6
2019-03-01    7
2019-03-02    8
2019-03-03    9
2019-03-04   10

Есть ли простой способ сделать объединение?Спасибо

1 Ответ

0 голосов
/ 22 февраля 2019

Я не уверен, что вы бы назвали это простым, но это помогает.Сначала объедините оба объекта xts с основным, проверьте имена столбцов внутри объекта out и используйте их внутри ifelse.В этом случае замените NA на значения из второго столбца, и после этого мы избавимся от ненужного столбца.

out <- merge(mainxts, secondxts)
out$mainxts <- ifelse(is.na(out$mainxts), out$secondxts, out$mainxts)
out$secondxts <- NULL

out
           mainxts
2019-02-23       1
2019-02-24       2
2019-02-25       3
2019-02-26       4
2019-02-27      90
2019-02-28       6
2019-03-01       7
2019-03-02       8
2019-03-03       9
2019-03-04      10

data:

mainxts <- structure(c(4L, 90L, 6L, 7L, 8L, 9L, 10L), .Dim = c(7L, 1L), index = structure(c(1551139200, 
1551225600, 1551312000, 1551398400, 1551484800, 1551571200, 1551657600
), tzone = "UTC", tclass = "Date"), class = c("xts", "zoo"), .indexCLASS = "Date", tclass = "Date", .indexTZ = "UTC", tzone = "UTC", .CLASS = "integer")

secondxts <- structure(1:6, .Dim = c(6L, 1L), index = structure(c(1550880000, 
1550966400, 1551052800, 1551139200, 1551225600, 1551312000), tzone = "UTC", tclass = "Date"), class = c("xts", 
"zoo"), .indexCLASS = "Date", tclass = "Date", .indexTZ = "UTC", tzone = "UTC", .CLASS = "integer")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...