I am using MS Visual Studio R Tools where I can prepare and test script in R language. Then I want to start process (using Process.Start(startInfo)) from C# code to execute this script, wait until it finishes and check output. The script produces some statistical computations and saves results on hard drive in .csv file.
How do I find the path to R interpreter? Is the code below correct?
Is it possible to add command line arguments to the R script when calling it from C# code?
ProcessStartInfo startInfo = new ProcessStartInfo();
r_interpreter_path="???";
startInfo.FileName = r_interpreter_path;
startInfo.Arguments = "\"" + r_script_name + " \"";
//Add command line arguments
startInfo.Arguments += " -sd " + date_start_str + " -ed " + date_end_str;
startInfo.UseShellExecute = false;
startInfo.RedirectStandardOutput = true;
startInfo.CreateNoWindow = true;
startInfo.RedirectStandardError = true;
using (Process process = Process.Start(startInfo))
{
using (StreamReader reader = process.StandardOutput)
{
string result = reader.ReadToEnd();
Debug.WriteLine(result);
}
process.WaitForExit();
//string errMsg = process.StandardError.ReadToEnd();
//if (errMsg != "")
// return false;
GC.Collect();
}