Rblpapi: BDH, чтобы получить исторические данные по нескольким ценным бумагам, иметь 1 столбец даты обрабатывать пропущенные даты между двумя - PullRequest
0 голосов
/ 05 сентября 2018

Здравствуйте, я запускаю следующий код:

start_Date = as.Date("2017-09-01")
end_Date = as.Date("2017-09-05")
sec_Tickers <- c("EURGBP Curncy","0000AR Index")
opts <- c("periodicitySelection"="DAILY", "nonTradingDayFillOption"="ACTIVE_DAYS_ONLY", "nonTradingDayFillMethod"="PREVIOUS_VALUE")
bbg_Data <- bdh(sec_Tickers,"PX_LAST", start_Date, end_Date, options=opts)

Это возвращает следующее в bbg_Data:

EURGBP Curncy           0000AR Index    
01/09/2017  0.91587     01/09/2017  500100.01
04/09/2017  0.92015     05/09/2017  49765.40
05/09/2017  0.91412         

04/09/2017 является торговым днем ​​для EURGBP, но выходным днем ​​в Канаде (День труда). Затем я возьму ниже из другого поста, где кто-то любезно показал, как объединить данные, чтобы у вас был только 1 столбец даты.

# Ammend data to have only one date column
xts_Transform <- lapply(bbg_Data, function(d) xts(d[,-1], order.by=as.Date(d[,1])))
xts_bbg_Data <- do.call(merge, xts_Transform)
colnames(xts_bbg_Data) <- gsub(" ", "_", sec_Tickers)

и получите:

              EURGBP_Curncy   0000AR_Index
2017-09-01    0.91587         50100.01
2017-09-04    0.92015         **NA**
2017-09-05    0.91412         49765.4

Есть ли хороший и быстрый способ, где я мог бы установить этот NA на предыдущее значение 50100.01? Или по-другому называть Bloomberg или в слиянии? В Excel, когда вы вызываете BDH, это происходит по умолчанию, поэтому мы надеемся, что был простой способ повторить это. Хочу в итоге:

              EURGBP_Curncy   0000AR_Index
2017-09-01    0.91587         50100.01
2017-09-04    0.92015         50100.01
2017-09-05    0.91412         49765.4
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...