私はR言語でスクリプトを準備しテストできるMS Visual Studio Rツールを使用しています。次に、このスクリプトを実行するためにC#コードから(Process.Start(startInfo)
を使用して)プロセスを開始し、終了して出力を確認するまで待機します。このスクリプトは統計計算をいくつか行い、ハードドライブの結果を.csv
ファイルに保存します。C#コードからRスクリプトを実行するには?
どのようにしてRインタープリタのパスを見つけることができますか?以下のコードは正しいですか?
RスクリプトにC#コードからコマンドライン引数を呼び出すときは、追加できますか?
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();
}