我试图找出如何使用X4R包将本地数据立方体加载到R中。我可以将多维数据集加载到Excel中,但是我无法使用R来实现这一点。
我的多维数据集文件名为" \ 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
任何人都可以帮我连接到我的本地立方体吗?我对此完全陌生,所以也许有人有一个我可以遵循的工作示例(使用示例数据立方体文件)?
谢谢!
答案 0 :(得分:4)
好的,以防万一其他人将来需要这样做,我设法解决了我的问题
# 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
对于连接,我使用了在设置从MS Excel到数据立方体的数据连接时配置的Provider(“MSOLAP.5”)。一切正常,我现在可以直接使用MDX查询数据库。