Ausführen von lokalen R-Skript über R.NET
Ich bin auf der Suche zu verwenden R.NET zur Ausführung eines bestehenden R-Skript, aber noch keine hatte Erfolg. Ist das eigentlich möglich? Ich habe den Beispielcode ausführen erfolgreich, so mein Standard-setup ist ok.
Mein code sieht wie folgt aus:
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);
}
}
}
Denen ich laufen gehe in einer Konsole in der app zum testen (schließlich will ich es haben, führen Sie server-Seite in einer web-app).
R-test.R-Skript funktioniert, wenn Sie ausführen, in RStudio, so gibt es keine problem gibt und sollte dazu führen, das schreiben einer csv-Datei auf der Festplatte. Ich sehe einige "Loading required package' - Nachrichten Ausgabe auf der Konsole so etwas funktioniert, aber die resultierende csv-Datei nicht angezeigt.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wie bereits in der Antwort zu dieser Beitrag in der R.NET Diskussionen, die Sie verwenden können
engine.Evaluate(@"source('c:/path/to/r-test.R')")
. Obwohl eine Menge hängt von dem Inhalt des Skripts sollte es natürlich funktionieren. Das sagte Ihr code sieht aus wie es funktionieren sollte, wie gut, obwohl ich nicht versucht haben, Ihren Ansatz.Ist es möglich, dass R.NET drosseln auf einige bestimmte R-Anweisung in Ihrem Skript. Wenn Sie visual studio sollte es möglich sein, für Sie an den Prozess Anhängen, wenn Sie R.NET zusammengestellt aus der Quelle, die mit debug-Symbolen. Wenn Sie Visual Studio ist dies die einfachste Möglichkeit; MonoDevelop /Xamarin studio ist auch eine option, aber ein bisschen mehr beteiligt. Dies sollte Ihnen helfen, den lästigen line.
Hoffe, das hilft
AccessViolationException
. Also zog ich die R-Skript zur Allgemeinen Lage. Allerdings habe ich dann eine andere Fehlermeldung nach dem Motto " Fehler in Datei... kann nicht geöffnet werden Verbindung. Es scheint, dass Sie in diesem Betrieb ist nicht so gerade nach vorn, und ich denke, ich werde zu prüfen haben, einen anderen Ansatz.