0

在完成了让 c#、R 在我们的 MVC Web 环境中工作的初步测试之后。我试图让以下代码工作(取自 -> 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 在这个堆栈溢出问题中的观点是普遍的立场“无法从 c# 连接到 R " 我应该转向这里的 COM 方法http://www.codeproject.com/Articles/25819/The-R-Statistical-Language-and-C-NET-Foundations

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

4

1 回答 1

1

要回答您的几个问题:

  • R.NET 是一项正在进行中的工作,在过去 3-4 个月内发生了很多事情,目前正在发生,所以我不会仅仅根据之前几个月前的 stackoverflow 帖子中的立场做出判断,当时工作已经完成在此之前的相当长一段时间内不太活跃。
  • 从技术上讲,更重要的是您的问题:通常在忘记调用 engine.Initialize() 时会发生 1.5.5 的 ParseError。我同意缺少信息很烦人;这正在为下一个版本工作。
  • 从“Web”环境调用 R.NET 可能存在固有问题。非常不熟悉 is,但有几份报告:最近的https://rdotnet.codeplex.com/discussions/463226,特别是https://rdotnet.codeplex.com/discussions/462947听起来很像你的。我已成功使用 R.NET 作为 R to Shiny 的后端,但无法评论 ASP.NET。

文档和最新进展:

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

希望这可以帮助。

于 2013-11-01T21:45:10.363 回答