Eu tenho um arquivo chamado a.r
, ele tem um chmod
de 755,
sayHello <- function(){
print('hello')
}
sayHello()
Como posso executar isso via linha de comando?
r
command-line
Sait
fonte
fonte
#!/usr/bin/env Rscript
Respostas:
Se você deseja que a saída seja impressa no terminal, é melhor usar o Rscript
Observe que ao usá-
R CMD BATCH a.R
lo em vez de redirecionar a saída para a saída padrão e exibir no terminal, um novo arquivo chamado a.Rout será criado.Outra coisa a ser observada sobre o uso do Rscript é que ele não carrega o
methods
pacote por padrão, o que pode causar confusão. Portanto, se você confiar em algo que os métodos fornecem, você precisará carregá-lo explicitamente em seu script.Se você realmente deseja usar a
./a.R
maneira de chamar o script, adicione um apropriado#!
à parte superior do scriptTambém observarei que, se você estiver executando em um sistema * unix, existe o pacote littler útil , que fornece canalização fácil da linha de comando para R. Pode ser necessário usar o littler para executar aplicativos brilhantes por meio de um script? Mais detalhes podem ser encontrados nesta pergunta .
fonte
R CMD BATCH
é terrível. Tudo menos isso ...R CMD INSTALL -l ~/R/lib-dev
Isso não responde diretamente à pergunta. Mas alguém pode acabar aqui porque quer executar um oneliner R no terminal. Por exemplo, se você deseja instalar apenas alguns pacotes ausentes e sair, este oneliner pode ser muito conveniente. Uso muito quando de repente descubro que sinto falta de alguns pacotes e quero instalá-los onde quiser.
Para instalar no local padrão:
Para instalar em um local que requer
root
privilégios:fonte
Rscript -e "getwd()"
no terminal. O Rscript imprimirá apenas a saída do comando e não a mensagem de inicialização completa do R.r -e "cat(getwd(),'\n')"
se você tiver um pouco instalado. Em esta resposta Dirk Eddelbuettel explica a diferença entre littler e RSCRIPT.R -e 'install.packages("package", repos="http://cran.us.r-project.org")'
R -r 'options(warn=2); install...'
para interromper a execução e obter um código de erro diferente de zero, caso a instalação falhe. Caso contrário, quaisquerinstall.packages
erros são apenas avisos.Mais uma maneira de executar um script R a partir da linha de comando seria:
ou com
--save
.Consulte também Qual é a melhor maneira de usar scripts R na linha de comando (terminal)? .
fonte
Você precisa do
?Rscript
comando para executar um script R no terminal.Confira http://stat.ethz.ch/R-manual/R-devel/library/utils/html/Rscript.html
Exemplo
fonte
Como executar o Rmd no comando com knitr e rmarkdown por vários comandos e, em seguida, carregar um arquivo HTML nos RPubs
Aqui está um exemplo: carregue duas bibliotecas e execute um comando R
fonte
R -e 'markdown::rpubsUpload("normalDev","NormalDevconJuly.html")'
Outra maneira de usar o Rscript para sistemas * Unix é a Substituição de Processo .
O que obviamente faz o mesmo que a resposta aceita, mas isso permite que você manipule e execute seu arquivo sem economizar o poder da linha de comando, por exemplo:
Semelhante a
Rscript -e "Rcode"
ele também permite executar sem salvar em um arquivo. Portanto, poderia ser usado em conjunto com scripts que geram código R, por exemplo:fonte
Apenas para documentação, às vezes você precisa executar o script como
sudo
:fonte