it-swarm.com.de

Rufen Sie R (Programmiersprache) von .net auf

Ich arbeite an einer Anwendung, die sehr viel Verarbeitungsaufwand erfordert und als Bilder in einer .net-Desktopanwendung ausgegeben wird. Die Probleme, einschließlich der Erzeugung der Ausgabebilder, scheinen für R http://www.r-project.org/

Gibt es einen Wrapper, ein API, ein SDK oder einen Port, mit dem ich R von .net aufrufen kann?

32
detroitpro

R.NET ist mit der neueren Version von R ziemlich fehlerhaft. Und wenn es nicht richtig funktioniert, funktioniert es furchtbar (und wird dies auch tun, wenn Sie nicht genau wissen, wie Sie es beheben können).

Ich persönlich würde empfehlen, R-Skriptdateien zu verwenden und auszuführen. Was Sie tun sollten, ist, Ihr R-Skript mit zu starten 

> sink()
> #set your working directory here with setwd()
> #your code comes in here
> sink(#name your output file here - could label it with a .txt if you please
+ )

Und von .NET aus müssen Sie den Namespace System.Diagnostics einschließen, indem Sie using System.Diagnostics eingeben und dann diesen Code schreiben:

string strCmdLine;
strCmdLine = "R CMD BATCH" + /* the path to your R script goes here */;
System.Diagnostics.Process.Start("CMD.exe",strCmdLine);
process1.Close();

Sie können dann einen StreamReader wie folgt verwenden:

StreamReader ROutput = new StreamReader(/* your R output file's path should go here */)

Und dann parsen Sie es nach Belieben (siehe auch RegEx und die Split-Methode eines Strings, falls Sie dazu auch Hilfe benötigen).

Hoffe das hilft!

14
Moriarty Snarly

Ich fand diese Bibliothek einfacher zu benutzen:

http://rdotnet.codeplex.com/

Gründe warum:

  • Es ist nur eine einzige .NET-Assembly erforderlich
  • Der DCOM-Server erfordert tatsächlich mehrere Komponenten an verschiedenen Orten 
  • Eine der Komponenten hat eine sehr restriktive Lizenz. Es sind nur direkte Downloads von der Website zulässig. Standardmäßig ist keine andere Form der Verteilung zulässig, was die Bereitstellung interessant macht
10
Thomas Bratt

Wenn Sie C # von R aus aufrufen möchten, überprüfen Sie rClr unter https://rclr.codeplex.com/

4
Contango

Wie andere Leute sagten, ist R.NET ziemlich fehlerhaft. Um sich vor den Auswirkungen neuer R-Versionen zu schützen, können Sie R-Server (rserve) hier verwenden. 

Sie können dann einen Rserve-Client verwenden, um Ihre R-Skripts auszuführen. 
Auf Sourceforge finden Sie die C # -Version

Auf dem Server muss R 1.5+ installiert sein. 

1
Stefan Steiger

Glänzendist eine Option.

Sie können eine glänzende App ausführen und Ihren Bericht sowohl in Ihrem Browser als auch in Ihrem wpf-Browser Steuerelement öffnen.

Hier ist eine detailliertere Erklärung. Es ist in einer anderen Sprache, aber ich habe versucht, englische Schlüsselwörter einzufügen. Der gesamte kursiv-Text ist Englisch. 

Beispiel in einer anderen Sprache, jedoch mit englische Schlüsselwörter

0
Andrey K.