我正在尋找使用R.NET來執行現有的R腳本,但沒有成功。這實際上可能嗎?我已經成功地運行了示例代碼,所以我的基本設置沒問題。通過R.NET執行本地R腳本
我的代碼如下所示:
static void RTest()
{
var envPath = Environment.GetEnvironmentVariable("PATH");
var rBinPath = System.Environment.Is64BitProcess ? @"C:\Program Files\R\R-3.0.1\bin\x64" : @"C:\Program Files\R\R-3.0.1\bin\i386";
Environment.SetEnvironmentVariable("PATH", envPath + Path.PathSeparator + rBinPath);
using(var engine = REngine.CreateInstance("RDotNet"))
{
engine.Initialize();
using(var fs = File.OpenRead(@"C:\R-scripts\r-test.R"))
{
engine.Evaluate(fs);
}
}
}
我在測試一個控制檯應用程序快到(最終我想擁有它的web應用程序運行服務器端)。
r-test.R腳本在RStudio中運行時工作,所以這裏沒有問題,並且應該導致將csv文件寫入磁盤。我看到一些'正在加載所需的包'消息被輸出到控制檯,所以有些東西正在工作,但是生成的csv文件沒有出現。
我沒有看到回覆到後(這也是我的)。這對我沒有用。雖然我在用戶文件夾中有我的R腳本,但最初我遇到了'AccessViolationException'。所以我把R腳本移到了一般位置。但是,然後我得到'文件錯誤...無法打開連接'的錯誤。這樣做似乎並不那麼直截了當,我想我必須考慮一種不同的方法。 –
對於不同的方法檢查:[與啓動過程運行R腳本](http://stackoverflow.com/questions/18224439/run-r-script-with-start-process-in-net)這與我合作。 – ruedi