2016-04-06 30 views
1

我想弄清楚如何使用X4R软件包将本地数据立方加载到R中。我可以将该多维数据集加载到Excel中,但是无法使其与R一起工作。在R中使用X4R软件包连接到SSAS(本地)数据立方体?

我的多维数据集文件名是“ \ scrsvr \ Users \\ Documents \ Projects \ Raw data \ data.cub“。

我尝试以下的代码:

library(X4R) 
handle<-xmlaConnect(url="\\scrsvr\\Users\\<MyName>\\Documents\\Projects\\Raw data\\data.cub") 

产生任何错误。但是,尝试使用xmlaDiscover会导致以下错误:

first argument is not an open XMLA handle 

任何人都可以帮助我连接到本地多维数据集吗?我对此完全陌生,所以也许有人有一个我可以遵循的示例(使用示例数据多维数据集文件)?

谢谢!

回答

3

好,以防万一别人需要为此在未来,我设法解决我的问题

# use some necessary packages 
require(RDCOMClient) 
require(data.table) 
library(plyr) 
library(Hmisc) 

#create connection to SSAS datacube 
con <- COMCreate("ADODB.Connection") 
con[["ConnectionString"]] <- paste(
    "Provider=MSOLAP.5", 
    "Data Source=\\\\scrsvr\\Users\\<MyName>\\Documents\\Projects\\Raw data\\data.cub", 
    "Persist Security Info=True", 
    sep = ";") 
con$Open() 

# define the MDX query here: 
query = "SELECT ..." 

rs <- COMCreate("ADODB.RecordSet") 

# submit the MDX query to the cube 
rs$Open(query, con) 

rs$MoveFirst() # move to the first row of the record set 
nc <- rs$Fields()$Count()  # define number of columns 

# get the data into a data array: 
dd <- vector("list", length=nc) 
dd <- rs$GetRows() # get the raw data from the results 

对于连接,我用提供商(“MSOLAP.5”),这是在配置我建立了从MS Excel到数据立方体的数据连接。它一切正常,我现在可以直接使用MDX查询数据库。