2012-06-01 90 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的这篇文章的读者可能想试试看。