从RDotNet调用时,R中的ParseException错误

时间:2013-11-01 15:44:08

标签: c# r r.net

我的初步测试是获得c#,R在我们的MVC网络环境中工作。我试图让以下代码工作(取自 - > http://rdotnet.codeplex.com/

到目前为止,为了调查这个问题,我已经从cmd提示符启动了R,并证明我可以在R中输入这些语句并获得结果,所以我知道R正在工作。我还运行了一个非常简单的“Hello World”示例,证明我可以启动R引擎并获得结果。

然后我想谈一个更复杂的问题,我想到了codeplex.com页面上的“执行代码”。做一些比打招呼更有价值的事情......

这是下面的代码段。引擎已经创建,我知道它在之前的测试中正在运行。

NumericVector group1 = Engine.Evaluate("group1 <- c( 30.02, 29.99, 30.11, 29.97, 30.01, 29.99)").AsNumeric();
NumericVector group2 = Engine.Evaluate("group2 <- c( 29.89, 29.93, 29.72, 29.98, 30.02, 29.98)").AsNumeric();

// Test difference of mean and get the P-value.
// what is in testResult
var testResult = Engine.Evaluate("t.test(group1, group2)").ToList();

此时它出错了,我收到消息“应用程序中的错误”和下面的堆栈跟踪...

at RDotNet.REngine.Parse(String statement, StringBuilder incompleteStatement)
at RDotNet.REngine.<Defer>c__Iterator4.MoveNext()
at System.Linq.Enumerable.LastOrDefault[TSource](IEnumerable`1 source)
at RDotNet.REngine.Evaluate(String statement)

所以我对此的多个问题是: -

是codeplex页面中的示例错误吗?我没做过什么吗?这是什么意思?我觉得“应用程序中的错误”并没有帮助我找到我应该做的事情......我应该尝试一些其他的例子,还是Dieter Menne在这个堆栈溢出问题中的观点是流行的立场“unable to connect to R from c#”和我应该转到这里找到的COM方法http://www.codeproject.com/Articles/25819/The-R-Statistical-Language-and-C-NET-Foundations

虽然我对数学和统计学更感兴趣而不是图形....我确实想让RDotNet工作....在c#

1 个答案:

答案 0 :(得分:1)

回答你的几个问题:

  • R.NET是一项正在进行中的工作,在过去3-4个月中已经发生了很多事情,并且目前正在发生,所以我不会仅仅基于以前的堆栈流程帖子中的立场,这些帖子已有很多个月了,当时在此之前的一段时间里,工作活动较少。
  • 从技术上讲,还有更多问题要点:通常在忘记调用engine.Initialize()时会出现带有1.5.5的ParseError。我同意缺乏信息是令人恼火的;这是为下一个版本开发的。
  • 从“Web”环境调用R.NET可能存在固有问题。非常不熟悉的是,但有几个报告:最近https://rdotnet.codeplex.com/discussions/463226,特别是https://rdotnet.codeplex.com/discussions/462947听起来很像你的。我已成功使用R.NET作为R to Shiny的后端,但无法对ASP.NET发表评论。

文件和最新进展:

  • 首先,当我开始Onboarding guide时,git repo上有几个示例项目。它是从R.NET codeplex站点链接的。如果这是你得到它并且仍然有这个ParseException问题,那么请告诉我。
  • 我专注于最近R.NET最近对可用性和稳健性的贡献。我可以建议,如果你的问题仍然存在,你试图获得名为'jperraud'的最新分支来编译R.NET。很高兴得到反馈。 “入职指南”有一个分支https://github.com/jmp75/rdotnet-onboarding/tree/rdotnet-dev

希望这有帮助。