R.exe, Rcmd.exe, Rscript.exe y Rterm.exe: ¿cuál es la diferencia?

112

Estoy luchando con los diferentes ejecutables de R. ¿Cuál es exactamente la diferencia entre R.exe (con o sin la opción CMD BATCH), Rcmd.exe, Rscript.exe y Rterm.exe cuando se ejecuta la línea de comando en un archivo por lotes?

Y cuál es la diferencia entre:

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

y

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

No hay diferencia en la salida.

No puedo encontrar nada sobre Rcmd.exe y Rscript.exe en el manual de referencia de 3079 páginas R.

Por cierto: estoy usando Windows.

vadeadores
fuente
3
Sí, lo he leído. Pero no se sabe nada sobre Rcmd.exe y solo unas pocas líneas sobre Rscript.exe. help (Rscript) me da más información
waanders

Respuestas:

116

Advertencia: trabajo mucho más en Linux que en Windows:

  • Rcmd.exees un vestigio histórico, ya que en el pasado, no se podía hacer R CMD somethingen Windows pero necesitaba el ejecutable especial Rcmd.exe something. Ese ya no es el caso, pero se proporciona para compatibilidad con versiones anteriores.
  • Rterm.exees también un vestigio de los días en que Rcmd.exese usó. Puede ignorarse en estos días.
  • R CMD BATCHes un embrague que se necesitaba en los días anteriores a los más pequeños y Rscript.exe, de manera similar, persiste de los viejos docs y hábitos.
  • Rscript.exees su amigo para los scripts por lotes; úselo.
  • Para todo lo demás, hay R.exe.

Aparte de eso, como insinuó Marek, el manual de referencia es el incorrecto entre los seis manuales disponibles. Pruebe la Introducción a R y los manuales de instalación y administración, los cuales tienen apéndices específicos para Windows.

Dirk Eddelbuettel
fuente
Gracias. Entonces, ¿puedo olvidar Rcmd.exe y R CMD BATCH?
vadeadores
1
Solo quiero ejecutar un script R con agurments de línea de comando en un archivo por lotes de Windows (shell). Según tengo entendido correctamente, R.exe es suficiente para mí.
vadeadores
R Introducción dice "Dentro de una ventana de terminal (...) invocando por R.exe o más directamente por Rterm.exe". Entonces, para todo lo demás, ¿Rterm?
Marek
7
Hay una diferencia importante entre R.exe y Rterm.exe: Rterm.exe se compila con / LARGEADDRESSAWARE y puede asignar 4 GB de RAM cuando se ejecuta en Windows de 64 bits, a diferencia de R.exe (estamos hablando de R de 32 bits que se ejecuta bajo Windows de 64 bits). ¿Por qué la gente de R haría esto solo para Rterm.exe y no para R.exe, si Rterm.exe está obsoleto?
Meh
2
... también una diferencia importante entre R y Rscript en que Rscript no se carga package:methods... y eso es parte de por qué es su amigo para los scripts por lotes (tiempo de inicio más rápido): stackoverflow.com/questions/19680462/…
russellpierce