8

我正在用 C# 编写一个控制台应用程序,我想使用 R 引擎在窗口中弹出一个图形。

有谁知道这是否可以从 Visual Studio 2012 中实现?

4

4 回答 4

4

是的,有可能。您需要的是从 C# 执行 R 代码。通过在 google 上搜索,我发现了以下项目:The R Statistical Language and C#.NET: Foundations by Jeff B. Cromwell

下面是一些代码来生成二十个正态随机变量的直方图:

//using STATCONNECTORCLNTLib; 
StatConnector test1 = new StatConnectorClass(); 
test1.Init("R"); 
test1.Evaluate("x <- rnorm(20)"); 
test1.EvaluateNoReturn("hist(x)");
于 2013-01-05T21:43:03.390 回答
3

正如其他人所说,R.net是有前途的项目(仍然不稳定)。

背后的理念是在 .net 框架内操作 R 对象。

我认为如果你想要的只是在窗口中弹出一个图形,最好创建一个 .bat 文件,在其中使用非常好的Rscript命令调用你的 R 脚本。

像这样的东西应该适合你:

在您的 c# 方面,您调用

Process.Start("launcher.bat");    

你定义你的launcher.bat

PATH PATH_TO_R/R-version/bin;%path%
cd PATH_TO_R_SCRIPT
Rscript myscript.R arg1 arg2
于 2013-01-05T22:03:31.850 回答
3

要将图形从 R 拉入 .NET,并将其显示在 WinForms 面板上:

在此处输入图像描述

首先,我们必须安装 Statconn,它是 .NET 和 R 之间的桥梁。安装正确的版本很重要(如果 x32 和 x64 的错误混合将不起作用)。确保这一点的最简单方法是从 R 控制台中安装 Statconn:

# Install Statconn bridge.
# Load the "rcom" package:
install.packages('rcom')
# Load the library 'rcom':
library('rcom')

此时,它会给出一个错误,即您没有安装该Statconn库。这很容易解决:

install.packages('statconn')

这将自动安装正确版本的 StatConn 桥接器,它是一个独立的 Windows 安装程序。

现在我们已经安装了 Statconn,我们可以在 .NET 文件中打开示例 .NET 项目C:\Program Files (x86)\statconn\DCOM\samples\Graphics.NET。此示例 .NET 项目展示了如何使用 R 从 C# WinForms 项目中绘制图形。

ps 还有其他 Python、C++、VBS、jscript 等的示例代码。

更新

如果您无法使其正常工作,请尝试R.Net,这可能是一个更好的选择,因为 Statconn 有一段时间没有更新,并且非常挑剔,“32 位”/“64 位”/“支持”的混合不够完美R版本'。

于 2013-02-05T11:04:25.677 回答
2

包 R.net 可能是开始查看快速 google 的结果的好地方。或者,您可以通过创建可从命令行调用的 R 脚本并使用来自 C# 的系统调用来使用更基本的方法。

于 2013-01-05T21:44:17.953 回答