2012-06-01 132 views
2

我可以嘗試在C#應用程序中使用R語言。集成C#和R問題

我按照這裏的說明 - http://joachimvandenbogaert.wordpress.com/2009/03/26/r-and-c-on-windows/,我可以通過COM成功地連接到R服務器。但是,當我試圖讓一個操作的結果我得到空的,而不是一個值:

connector.EvaluateNoReturn("x <- c(2,3,5,1,4,4)"); 
var result = connector.Evaluate("sum(x)"); // it is always null here 

我不知道還有什麼我應該檢查?我爲我的VS項目/解決方案將編譯模式設置爲X86。我已將所有環境變量指向bin文件夾的i386子文件夾,但沒有任何幫助。

我有Win7 64bit,R版本2.15.0。也許我應該嘗試64位R?

+0

我寧願建議先使用R 2.14。這些COM接口是高度依賴於版本的,這是我放棄使用這些接口的原因之一。 –

+0

你現在用什麼?是否有另一種整合C#和R的解決方案? – Sergei

+1

那麼,我嘗試使用http://rdotnet.codeplex.com/。這是一個很好的概念,但並不起作用(請參閱http://rdotnet.codeplex.com/workitem/7),而且很少更新。它標記時肯定不「穩定」。社區太小了。我目前使用RServe,這是一個成熟的產品,即使它不能很好地與c#一起工作。而DirkEdelbüttel無論如何都討厭Windows。 –

回答

3

一些無恥的自我推銷:還有RserveCLI,另一個庫訪問來自.NET的Rserve。去年我在R/Finance會議上介紹了它,似乎有一個小用戶羣。

0

沿着奧利弗的答案,你可以嘗試RserveCLI2奧利弗的項目分叉。

0

還有另一個SO帖子,您可能想查看,How can I access Windows COM objects in R v3?

但是,真正的無恥插頭,R.NET自從這篇原文和Dieter Menne的評論以來,已經取得了一些進展,包括在* nix平臺上。需要.NET和R interop的這篇文章的讀者可能想試試看。