rbind.xts из списка объектов xts - PullRequest
3 голосов
/ 07 апреля 2020

У меня есть список объектов xts, которые имеют общие имена индексов и столбцов.

Я хочу rbind по индексу и усреднить столбцы:

dts = seq.POSIXt(from = Sys.time() - days(2), to = Sys.time(), by = 'day')
x1 = xts(x = 1:3, order.by = dts)
names(x1) = 'a'
x2 = xts(x = 2:4, order.by = dts)
names(x2) = 'a'

x = rbind.xts(x1, x2)  
aggregate(x, index(x), 'mean')

Это работает хорошо для того, что я хочу, проблема в том, что объекты xts хранятся в списке, а не как отдельные объекты.

Если я попытаюсь

rbind.xts(list(x1, x2))

Они не присоединяются:

[[1]]
                    a
2020-04-04 15:17:42 1
2020-04-05 15:17:42 2
2020-04-06 15:17:42 3

[[2]]
                    a
2020-04-04 15:17:42 2
2020-04-05 15:17:42 3
2020-04-06 15:17:42 4

Как я могу выполнить привязку из списка?

1 Ответ

2 голосов
/ 07 апреля 2020

Мы можем использовать do.call

do.call(rbind.xts, list(x1, x2))
#                    a
#2020-04-04 18:19:33 1
#2020-04-04 18:19:33 2
#2020-04-05 18:19:33 2
#2020-04-05 18:19:33 3
#2020-04-06 18:19:33 3
#2020-04-06 18:19:33 4

Или извлекать list элементы один за другим и применять rbind

lst1 <- list(x1, x2)
rbind.xts(lst1[[1]], lst1[[2]])
...