2013-11-01 15 views
0

已經推進了我的初始測試,讓c#,R在我們的MVC Web環境中工作。我試圖讓下面的代碼工作(取自 - >http://rdotnet.codeplex.com/當從RDotNet調用時,R中的ParseException錯誤

爲了調查這個到目前爲止,我已經從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

要回答你的幾個問題:

  • R.NET是一項正在進行中的工作,在過去的3-4個月中發生了很多,目前正在發生g,所以我不會僅僅根據以前在幾個月前的stackoverflow帖子中的立場來做出判斷,當時這項工作在此之前的一段時間內的活動不太活躍。
  • 從技術上講,更重要的是你的問題:通常情況下,當忘記調用engine.Initialize()時,出現1.5.5的ParseError。我同意缺乏信息是令人惱火的;這是正在爲下一個版本工作。
  • 從「Web」環境調用R.NET可能存在固有的問題。很不熟悉的是,但有幾個報告:最近https://rdotnet.codeplex.com/discussions/463226,特別是https://rdotnet.codeplex.com/discussions/462947聽起來很像你的。我已經成功地使用R.NET作爲R到Shiny的後端,但不能評論ASP.NET。

文檔和最新進展:

  • 要開始,有一個混帳回購協議的幾個樣本項目,我開始了一個Onboarding guide。它從R.NET codeplex站點鏈接。如果這是你得到它,然後有這個ParseException問題,然後讓我知道。
  • 我關注了最近R.NET最近對可用性和健壯性的貢獻。如果您的問題仍然存在,我可以提議您嘗試獲取名爲'jperraud'的最新分支來編譯R.NET。很高興收到反饋。'入職指南有一個分支https://github.com/jmp75/rdotnet-onboarding/tree/rdotnet-dev

希望這會有所幫助。