R不识别使用彭博API代码填充的Excel单元

我使用BBG插件在Excel中构build了一个dynamic更新的电子表格,该插件使用BBG API提取价格数据。 我想从表中拉到R表,并使用下面的代码创build一个简单的散点图:

wb <- loadWorkbook("Fx Vol Framework.xlsx") data <- readWorksheet(wb,sheet = "Carry", region = "AL40:AN68",header=TRUE, rownames = 1) plot(data,ylim = c(-2,12)) with(data,text(data, labels = row.names(data), pos = 1)) reg1 <- lm(data[,2]~data[,1]) abline(reg1) 

我正在调用的区域(AL40:AN68)中填充了HLOOKUP公式的结果,该公式使用BBG API从单元调用。 当我运行代码,我得到下面的错误(重复每个单元格相同的错误文本):

 There were 50 or more warnings (use warnings() to see the first 50) > warnings() Warning messages: 1: Error when trying to evaluate cell AM41 - Name '_xll.BDP' is completely unknown in the current workbook 

如果我回到Excel工作表并填充数值(复制 – >粘贴值)的相同区域AL40:AN68,保存工作簿,并运行相同的代码,我得到了原始代码所期望的散点图。 有没有什么办法让我使用Bloomberg API的单元格来获得散点图,还是我需要用简单的数值运行它? 我需要使用Bbg软件包吗? 谢谢。

我不熟悉BBGjoin,但它看起来像调用readWorksheet后,你会想调用一个函数,实际上打开工作簿。 我认为这将在某种意义上“完成约束”。 无论如何,我有时需要在R和Excel之间传递数据。 以下是我将如何使用RDCOMClient软件包解决问题。

R代码:

 library(RDCOMClient) exB <- COMCreate("Excel.Application") book <- exB$Workbooks()$Open("C:/"the right directory/exp.xlsx") dNames <- book$Worksheets("Sheet1")$Range("AL40:AN40") dValues <- book$Worksheets("Sheet1")$Range("AL41:AN68") dNames <- unlist(dNames[["Value"]]) dValues <- unlist(dValues[["Value"]]) data1 <- matrix(dValues,ncol=3) colnames(data1) <- dNames data1 <- as.data.frame(data1) plot(data1$v1,data1$v2) 

显然你可以用许多方法来绘制事物,模拟事物或其他任何东西,但是这会让事情进入R,这可能是最好的地方。 无论如何,在http://www.omegahat.org/RDCOMClient/Docs/introduction.html上还有一个很好的介绍,使用RDCOMClient软件包来连接R和Excel来快速完成数据任&#x52A1;