如何解决RDotNet REngine nullreference异常

Mat*_*Mat 2 c# visual-studio r.net

我正在尝试使用该REngine.GetInstance()函数,但我不断收到空引用异常。

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

我试过重新安装软件包。我试过检查安装路径,但我找不到 rdotnetlibrary 如何访问它。我什至不确定路径是否与问题有关。

请帮忙。

Shi*_*que 6

确保您的启动参数设置正确。由于您没有向我们提供足够的信息;这是一个正确的方式来获得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);
//...
Run Code Online (Sandbox Code Playgroud)

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

编辑(感谢@David M.):在通常情况下StartupParameterGetInstance()如果您不想使用默认初始化设置,则只需要传递给。但是,根据第一个参数的源代码注释:

要加载的库的文件名,例如 Windows 的“R.dll”。你通常不需要提供这个可选参数

在极少数情况下,您需要提供以下路径R.dll

//...
rMain = REngine.GetInstance("C:/Program Files/R/R-3.4.3/bin/x64/R.dll", true, rinit);
//...
Run Code Online (Sandbox Code Playgroud)