2016-04-06 72 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查詢數據庫。