2015-01-21 3 views
1

У меня есть 5 объектов XTS. Каждый из них содержит индивидуальную переменную (различные классы активов, например, акции, облигации, хедж-фонды и т. Д.). Проблема, с которой я сталкиваюсь, заключается в том, что последовательность дат для каждого объекта не является точной. Некоторые даты отсутствуют для некоторых отдельных объектов. Как правило, данные ежедневно с июля 2004 года по декабрь 2014 года, но есть некоторые даты в объекте XTS возвратов акций, которых нет в объекте возврата XTS, и наоборот.Слияние объектов XTS

Как я могу объединить 5 объектов XTS, чтобы результирующий объект содержал все даты в порядке, как они есть сейчас, и просто генерирует «NA» для любой серии возвратов, у которой отсутствует указанное наблюдение для этой конкретной даты?

Я пытался слить, реклассифицировать в data.frame и делать cbind, но ничего не работает. Что я могу сделать, чтобы объединить все 5 объектов и сгенерировать NA для недостающих возвратов для серии, в которой нет наблюдений, где проводятся другие серии?

Спасибо за любую помощь, которую вы можете предоставить.

+2

Было бы легче помогите, если вы предоставили [воспроизводимый пример] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example). – MrFlick

+3

Что вы описываете, что делает 'merge.xts' по умолчанию, поэтому я не уверен, в чем проблема. –

+0

Спасибо Joshua - merge.xts - это именно то, что мне нужно. – fibrou

ответ

3

Я думаю, что вы ищете что-то вроде этого ?:

library(xts) 
a <- xts(order.by = Sys.Date()-1:10,(1:10)) 
b <- xts(order.by = Sys.Date()-5:15,(10:20)) 
merge(a,b,all=TRUE) 

дает:

  a b 
2015-01-06 NA 20 
2015-01-07 NA 19 
2015-01-08 NA 18 
2015-01-09 NA 17 
2015-01-10 NA 16 
2015-01-11 10 15 
2015-01-12 9 14 
2015-01-13 8 13 
2015-01-14 7 12 
2015-01-15 6 11 
2015-01-16 5 10 
2015-01-17 4 NA 
2015-01-18 3 NA 
2015-01-19 2 NA 
2015-01-20 1 NA 

Надежда, которая получает вас в правильном направлении ...

+0

Это то, что я хотел сделать, но объединить 5 объектов XTS. Спасибо @ joshua-ulrich за предложение «merge.xts». Я просто упустил доступность «.xts», как есть для «merge.zoo ...». Еще раз спасибо Джошуа! – fibrou

Смежные вопросы