如何解决RDotNet REngine nullreference异常

时间:2018-04-23 14:08:56

标签: c# visual-studio r.net

我正在尝试使用REngine.GetInstance()函数,但我一直得到一个空引用异常。

我尝试在REngine中使用另一个函数,以防getInstance方法出错,如REngine.SetEnvironmentVariables(),但它们都返回空引用异常。

我已尝试重新安装该软件包。我已经尝试检查安装路径,但我无法找到rdotnetlibrary如何访问它。我甚至不确定路径是否与问题有关。

请帮忙。

4 个答案:

答案 0 :(得分:3)

我使用3.5.0版本时遇到了同样的问题

打电话给" REngine.GetInstance"会导致'对象引用未设置为对象的实例'

我降级到3.4.0,我不再犯这个错误了。

答案 1 :(得分:1)

确保您的startupparameters设置正确。既然你没有提供足够的信息;这是一个正确的方式来让r.net的REngine运行:

//...
StartupParameter rinit = new StartupParameter();
rinit.Quiet = true;
rinit.RHome = "C:/Program Files/R/R-3.4.3";
rinit.Interactive = true;
REngine.SetEnvironmentVariables();
rMain = REngine.GetInstance(null, true, rinit);
//...

确保将RHome设置为正确安装的R路径。

答案 2 :(得分:0)

当我们将R从3.4升级到3.5时,我们得到了确切的错误。我们降级回3.4并继续前进。

答案 3 :(得分:0)

正如其他答案所指出的那样,这似乎是与R 3.5及更高版本有关的问题。通过使用Shique的解决方案,我还下载了R 3.4.4,并使两个版本同时运行,从而设法解决了这个问题。

对于那些无法降级R的人来说,jmp75似乎一直在进行修复,并且https://github.com/StatTag/rdotnet/tree/r_3_5_0上有一个WIP分支可用