Execute o script R na linha de comando

Eu tenho um arquivo chamado ar , ele tem um chmod de 755,

 sayHello <- function(){ print('hello') } sayHello() 

Como posso executar isso via linha de comando?

Se você quiser que a saída seja impressa no terminal, é melhor usar o Rscript

 Rscript aR 

Observe que ao usar R CMD BATCH aR vez de redirect a saída para a saída padrão e exibir no terminal, um novo arquivo chamado aRout será criado.

 R CMD BATCH aR # Check the output cat a.Rout 

Se você realmente quiser usar a maneira ./aR de chamar o script, você pode adicionar um #! apropriado #! para o topo do script

 #!/usr/bin/env Rscript sayHello < - function(){ print('hello') } sayHello() 

Eu também notarei que se você estiver rodando em um sistema * unix, existe o pacote littler que fornece uma linha de comando fácil para o R.

Isso não responde à pergunta diretamente. Mas alguém pode acabar aqui porque eles querem executar um oneliner de R do terminal. Por exemplo, se você quiser apenas instalar alguns pacotes que estão faltando e sair, este oneliner pode ser muito conveniente. Eu uso muito quando de repente descubro que sinto falta de alguns pacotes, e quero instalá-los onde quiser.

 R -e 'install.packages(c("package1", "package2"))' # install to default location. sudo R -e 'install.packages(c("package1", "package2"), lib="/usr/local/lib/R/site-library")' # install to location that requires root. 

Mais uma maneira de executar um script R a partir da linha de comando seria:

 R < scriptName.R --no-save 

ou com --save .

Veja também Qual é a melhor maneira de usar scripts R na linha de comando (terminal)? .

Você precisa do comando ?Rscript para executar um script R a partir do terminal.

Confira http://stat.ethz.ch/R-manual/R-devel/library/utils/html/Rscript.html

Exemplo

 ## example #! script for a Unix-alike #! /path/to/Rscript --vanilla --default-packages=utils args < - commandArgs(TRUE) res <- try(install.packages(args)) if(inherits(res, "try-error")) q(status=1) else q() 

Como executar o Rmd no comando com knitr e rmarkdown por vários comandos e, em seguida, fazer upload de um arquivo HTML para RPubs

Aqui está um exemplo: carregue duas bibliotecas e execute um comando R

 R -e 'library("rmarkdown");library("knitr");rmarkdown::render("NormalDevconJuly.Rmd")' R -e 'library("markdown");rpubsUpload("normalDev","NormalDevconJuly.html")' 

Apenas para documentação. Algumas vezes você precisa executar o script como sudo :

 sudo Rscript path/to/your/file.R 

Ainda outra maneira de usar o Rscript para sistemas * Unix é a substituição do processo .

 Rscript < (zcat ar) # [1] "hello" 

O que obviamente faz o mesmo que a resposta aceita, mas isso permite que você manipule e execute seu arquivo sem salvar o poder da linha de comando, por exemplo:

 Rscript < (sed s/hello/bye/ ar) # [1] "bye" 

Semelhante ao Rscript -e "Rcode" ele também permite executar sem salvar em um arquivo. Por isso, pode ser usado em conjunto com scripts que geram código-R, por exemplo:

 Rscript < (echo "head(iris,2)") # Sepal.Length Sepal.Width Petal.Length Petal.Width Species # 1 5.1 3.5 1.4 0.2 setosa # 2 4.9 3.0 1.4 0.2 setosa