R & COM-Objects:如何连接到 Windows 上的 OLAP 多维数据集

R & COM-Objects: How to connect to a OLAP cube on Windows

我想在 R 中使用 .COM 对象来建立一个 ADODB.Connection 到 OLAP 多维数据集。为此,我使用了 rscproxy、rcom 和 statconnDCOM 包。

但是,我并没有真正成功地找到 rcom 包的任何有用文档,因此,我在 R 中使用 .COM 对象时遇到了很多困难。

我可以创建 .COM 对象,但我不知道接下来的步骤。我想做什么:

  1. 设置连接字符串
  2. 打开 R <-> 多维数据集连接
  3. 执行 mdx 查询

请帮我解决这个问题:-)

.

代码:

# I am quite confident that this section is right:
library(rcom)
conn <- comCreateObject("ADODB.Connection")

# From now on it becomes speculative: 
comGetObjectInfo(conn)
connStr = 'Provider=MSOLAP;Data Source=...;Initial Catalog=...;'

# First try to set the connection string:
comSetProperty(conn,"ConnectionString",connStr)

# Second try to set the connection string: 
conn[["ConnectionString"]] = connStr

# I try to establish the connection:
conn$Open

.

其他信息:

因为用 R-3.3.1 安装上述软件包花了我很长时间,所以我想快速概述一下我是如何做到的:

.libPaths()

options(install.packages.check.source = "no")
install.packages(c("rscproxy","rcom"),repos="http://www.autstat.com/download",lib=.Library,type="win.binary")
installstatconnDCOM()
library(rcom)
comRegisterRegistry()

sessionInfo()

经过多次尝试和错误的方法,我已经回答了我的问题,我想与您分享解决方案:最后,我从 rcom 包切换到 RDCOMClient 包,因为我被卡住了第一个.

下载包:

下载 link 的 RDCOMClient_ 包:(我使用的是 R-3.3.1) https://www.stats.ox.ac.uk/pub/RWin/bin/windows/contrib/3.3/

解决方案代码:

install.packages("local path to: RDCOMClient_0.93-0.2.zip", repos = NULL, type="source")
library(RDCOMClient)
sessionInfo()

conn = COMCreate("ADODB.Connection")
conn[["State"]]

connStr = 'a connection string'
conn[["ConnectionString"]] = connStr 

conn[["CommandTimeout"]] = 180
conn[["ConnectionTimeout"]] = 30

conn[["State"]] 

conn$Open()

conn[["State"]]

query = 'a query'
results = conn$Execute(query)