我的目标是调用保存在磁盘中的R函数,执行该函数并将输出显示到html页面。
为了获得这个,我写了下面的代码(在网上的某处找到)。
public ActionResult Index()
{
var rCodeFilePath = @"K:/RPrograms/hello.R";
var rScriptExecutablePath = @"C:/Program Files/R/R-3.2.2/bin/Rscript.exe";
string result = string.Empty;
try
{
var info = new ProcessStartInfo();
info.FileName = rScriptExecutablePath;
info.WorkingDirectory = Path.GetDirectoryName(rScriptExecutablePath);
info.Arguments = rCodeFilePath;
info.RedirectStandardInput = false;
info.RedirectStandardOutput = true;
info.UseShellExecute = false;
info.CreateNoWindow = true;
using (var proc = new Process())
{
proc.StartInfo = info;
proc.Start();
result = proc.StandardOutput.ReadToEnd();
proc.Close();
}
ViewBag.Result=result;
}
catch (Exception ex)
{
throw new Exception("R Script failed: " + result, ex);
}
return View();
}
我没有看到任何错误,但在“结果”中,我得到一个空的结果。当我在'RGui'中运行该函数时,它会显示一个结果。 R函数基本上是一个hello world代码。
任何人都可以表现出一些亮点吗?
答案 0 :(得分:0)
您确定这是正确的网址吗? “C:/ Program Files / R / R-3.2.2 / bin / Rscript.exe” 尝试使用您的URL到这样的文件:C:\ Program Files \ R \ R-3.2.2 \ bin \ Rscript.exe
我只是在暗示,但不确定。
Goodluck继续。