使用R(D)COM将R与C#
我正在尝试使用R(D)Com接口。 我在机器上安装了R 2.12.1。 为了在C#中使用这个接口,我加载了rscproxy_1.3-1包,然后在我的机器上安装了R_Scilab_DCOM3.0-1B5。 另外,在安装界面时,我已将Program Files R(D)COM Server Scilab中的sciproxy.dll复制到Program Files R(D)COM Server bin中。
我的问题:
作为测试的一部分,我尝试了博客文章http://vvella.blogspot.com/2010/08/integrate-c-net-and-r-taking-best-of.html中的代码。 但是我的表单应用程序因语句rconn.Init(“R”)引发的异常而失败。 异常文本是从HRESULT异常:0x80040013我试图从程序 - > R-> R(D)COM服务器 - >服务器01基本测试运行示例。 在启动的窗体上,我点击按钮“开始R”,但它失败,错误在文本框中打印为“初始化R ...函数调用失败代码:-2147221485文本:安装问题:无法加载连接器”
我试过这个:
我试图在Index html页面的帮助下对它进行疑难解答,并且在安装部分下,我发现在安装的R / Bin文件夹下必须有rproxy.dll。 另外,HKEY_LOCAL_MACHINE Software R-core R InstallPath应该指向安装文件夹。
我机器上缺乏的东西是
我可以猜测安装或注册COM服务器有些诡异。 但我没有成功地弄清楚。
你能告诉我我哪里错了吗?
谢谢,
卡皮尔
哦,上帝,我记得这是一个巨大的屁股疼痛。 让我们看看我能否记得......在我开始之前,我警告你我只是“得到了这个工作”,并且从不在乎我是否能够从流程中删除部分内容。
可从http://rcom.univie.ac.at/download.html下载。 如果我没有记错的话,RandFriends软件包就是你需要的,它会安装一个crapload(只需安装它),但很简单。 或者,我想如果你在R中安装'rscproxy'包,你可以下载'statconnDCOM'并安装它。 内存朦胧,但我知道这些方法中的一种会导致每次运行C#可执行文件时出现恼人的启动画面,而其中一种则不会。 虽然这可能只是我玩过的一些设置。
现在,我不记得你是如何验证东西已成功安装的。 很确定它带有例子。 一旦开始,请打开您的C#项目。 参考以下项目,
StatConnectorCommonLib
STATCONNECTORSRVLib
在你的代码中,你可能会想要实现一个IStatConnectorCharacterDevice
这样你就可以用C#返回R输出。 您的初始化代码将看起来像,
private StatConnector _StatConn;
private IStatConnectorCharacterDevice _CharDevice;
private Whatever()
{
// declare
_StatConn = new StatConnectorClass();
_CharDevice = new MyCharDevice();
// init R, wire up char device
_StatConn.Init("R");
_StatConn.SetCharacterOutputDevice(_CharDevice);
}
那么你应该能够根据需要使用这些功能
_StatConn.EvaluateNoReturn("x <- 3");
var returnObj = _StatConn.Evalute("1 + 1");
希望有所帮助。
tl; dr 下载RAndFriends,用新鲜安装
我有一个调用R.Init()的类似问题,我发现R.GetErrorText()返回实际的错误信息
链接地址: http://www.djcxy.com/p/50919.html