我正在用 C# 编写一个控制台应用程序,我想使用 R 引擎在窗口中弹出一个图形。
有谁知道这是否可以从 Visual Studio 2012 中实现?
我正在用 C# 编写一个控制台应用程序,我想使用 R 引擎在窗口中弹出一个图形。
有谁知道这是否可以从 Visual Studio 2012 中实现?
是的,有可能。您需要的是从 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)");
正如其他人所说,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
要将图形从 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版本'。
包 R.net 可能是开始查看快速 google 的结果的好地方。或者,您可以通过创建可从命令行调用的 R 脚本并使用来自 C# 的系统调用来使用更基本的方法。