rblpapi:BDH提取多个证券的历史数据,具有1个date列处理两者之间的缺失日期

时间:2018-09-05 11:57:55

标签: r

您好,我正在运行以下代码:

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         

2017年4月9日是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?是通过不同方式调用彭博社还是在合并中?在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

0 个答案:

没有答案