R.exe, Rcmd.exe, Rscript.exe e Rterm.exe: qual é a diferença?

112

Estou lutando com os diferentes executáveis ​​R. Qual é exatamente a diferença entre R.exe (com ou sem a opção CMD BATCH), Rcmd.exe, Rscript.exe e Rterm.exe ao executar a linha de comando em um arquivo em lote?

E qual é a diferença entre:

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

e

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

Nenhuma diferença na saída.

Não consigo encontrar nada sobre Rcmd.exe e Rscript.exe no manual de referência R 3079 páginas.

A propósito: estou usando o Windows.

waanders
fonte
3
Sim, eu li isso. Mas nenhuma palavra sobre Rcmd.exe e apenas algumas linhas sobre Rscript.exe. help (Rscript) me dá mais informações
waanders

Respostas:

116

Advertência: eu trabalho muito mais no Linux do que no Windows:

  • Rcmd.exeé uma sobra histórica de antigamente, você não podia fazer R CMD somethingno Windows, mas precisava do executável especial Rcmd.exe something. Isso não é mais o caso, mas é fornecido para compatibilidade com versões anteriores.
  • Rterm.exetambém é um resquício dos dias em que Rcmd.exeera usado. Pode ser ignorado hoje em dia.
  • R CMD BATCHé uma muleta que era necessário nos dias antes littler e Rscript.exe, da mesma forma remanescentes de docs e hábitos antigos ..
  • Rscript.exeé seu amigo para scripts em lote; use-o.
  • Para todo o resto, existe R.exe.

Fora isso, como Marek sugeriu, o manual de referência é o errado entre os seis manuais disponíveis. Experimente a Introdução ao R e os manuais de Instalação e Administração, ambos com apêndices específicos para Windows.

Dirk Eddelbuettel
fonte
Obrigado. Posso esquecer o Rcmd.exe e o R CMD BATCH?
Waanders
1
Eu só quero executar um script R com alterações de linha de comando em um batchfile do Windows (shell). Pelo que entendi corretamente R.exe é o suficiente para mim.
Waanders
R Introdução afirma "Em uma janela de terminal (...) invocando por R.exe ou mais diretamente por Rterm.exe". Então, para todo o resto Rterm?
Marek
7
Há uma diferença importante entre R.exe e Rterm.exe - Rterm.exe é compilado com / LARGEADDRESSAWARE e pode alocar 4 GB de RAM quando executado em Windows 64 bits, ao contrário de R.exe (estamos falando de R de 32 bits rodando em Windows de 64 bits). Por que o pessoal do R faria isso apenas para Rterm.exe e não para R.exe, se Rterm.exe é obsoleto?
Meh
2
... também uma diferença importante entre R e Rscript em que Rscript não carrega package:methods... e isso é parte do motivo pelo qual ele é seu amigo para scripts em lote (tempo de inicialização mais rápido): stackoverflow.com/questions/19680462/…
russellpierce