R.exe, Rcmd.exe, Rscript.exe und Rterm.exe: Was ist der Unterschied?

112

Ich habe Probleme mit den verschiedenen ausführbaren R-Dateien. Was genau ist der Unterschied zwischen R.exe (mit oder ohne CMD BATCH-Option), Rcmd.exe, Rscript.exe und Rterm.exe, wenn die Befehlszeile in einer Batchdatei ausgeführt wird?

Und was ist der Unterschied zwischen:

R.exe --no-environ --no-save < "c:\temp\R\test.R" > "c:\temp\R\out.txt" 2>&1

und

R.exe CMD BATCH --no-environ --no-save "c:\temp\R\test.R" "c:\temp\R\out.txt"

Kein Unterschied in der Ausgabe.

Ich kann nichts über Rcmd.exe und Rscript.exe im 3079 Seiten umfassenden R-Referenzhandbuch finden.

Übrigens: Ich benutze Windows.

Waanders
quelle
3
Ja, das habe ich gelesen. Aber kein Wort über Rcmd.exe und nur ein paar Zeilen über Rscript.exe. Hilfe (Rscript) gibt mir einige weitere Informationen
Waanders

Antworten:

116

Vorsichtsmaßnahme: Ich arbeite viel mehr unter Linux als unter Windows:

  • Rcmd.exeist ein historischer Überrest, wie man es damals R CMD somethingunter Windows nicht konnte, aber die spezielle ausführbare Datei benötigte Rcmd.exe something. Dies ist nicht mehr der Fall, wird jedoch aus Gründen der Abwärtskompatibilität bereitgestellt.
  • Rterm.exeist auch ein Überbleibsel aus den Tagen, als Rcmd.exees verwendet wurde. Kann heutzutage ignoriert werden.
  • R CMD BATCHist eine Kupplung, die in den Tagen vor kleiner und Rscript.exeund in ähnlicher Weise von alten Dokumenten und Gewohnheiten zurückgehalten wurde.
  • Rscript.exeist dein Freund für Batch-Skripte; benutze es.
  • Für alles andere gibt es R.exe.

Abgesehen davon ist das Referenzhandbuch, wie Marek angedeutet hat, das falsche unter den sechs verfügbaren Handbüchern. Probieren Sie die Einführung in R und die Installations- und Administratorhandbücher aus, die beide spezifische Anhänge für Windows enthalten.

Dirk Eddelbuettel
quelle
Vielen Dank. Also kann ich Rcmd.exe und R CMD BATCH vergessen?
Waanders
1
Ich möchte nur ein R-Skript mit Befehlszeilenanweisungen in einer Windows-Batchdatei (Shell) ausführen. Soweit ich es richtig verstehe, reicht mir R.exe.
Waanders
R Einleitung besagt "Innerhalb eines Terminalfensters (...), das von R.exe oder direkter von Rterm.exe aufgerufen wird". Also für alles andere Rterm?
Marek
7
Es gibt einen wichtigen Unterschied zwischen R.exe und Rterm.exe - Rterm.exe wird mit / LARGEADDRESSAWARE kompiliert und kann im Gegensatz zu R.exe 4 GB RAM zuweisen, wenn es unter Windows 64-Bit ausgeführt wird (es handelt sich um 32-Bit-R, unter dem ausgeführt wird) 64-Bit-Windows). Warum sollten die R-Leute dies nur für Rterm.exe und nicht für R.exe tun, wenn Rterm.exe veraltet ist?
Meh
2
... auch ein wichtiger Unterschied zwischen R und Rscript, da Rscript nicht geladen wird package:methods... und das ist ein Teil dessen, warum es Ihr Freund für Batch-Skripte ist (schnellere Startzeit): stackoverflow.com/questions/19680462/…
Russellpierce