HOWTO · R
Como executar um script R a partir da linha de comandos
Aprenda a executar um script R num terminal ou numa linha de comandos com Rscript, a passar argumentos, a agendar uma tarefa cron e a controlar versões dos scripts com Git.
Nesta página
Para executar um script R num terminal ou na linha de comandos, guarde o código num ficheiro e invoque-o com Rscript path/to/script.R. É necessário ter o R instalado e a shell tem de conseguir encontrar Rscript através de PATH; caso contrário, use o caminho completo do executável. Este método é útil para análises repetíveis, scripts que recebem dados de entrada e tarefas agendadas.
O que é o Rscript?
Rscript é o programa de linha de comandos que permite executar código R a partir de um script ou de um comando fornecido diretamente. É adequado para tarefas não interativas: as instruções estão num ficheiro ou comando, e o processo termina quando o trabalho acaba. Numa sessão interativa de R, pelo contrário, pode introduzir comandos e consultar os resultados à medida que trabalha.
A instalação do R inclui o Rscript. Abra um terminal no macOS ou Linux, ou a Linha de Comandos ou o PowerShell no Windows, e verifique se o comando está disponível com Rscript --version. Se a shell indicar que não consegue encontrar o comando, instale o R ou localize o executável incluído na instalação do R e use o caminho completo. Os diretórios de instalação variam consoante o sistema operativo e a instalação; por isso, evite depender de um caminho específico de uma versão copiado de outro computador.
Executar um script R com Rscript
Crie um ficheiro chamado mean.R com este pequeno exemplo. Se forem fornecidos números na linha de comandos, o script utiliza-os; caso contrário, recorre a um conjunto predefinido. Assim, pode executá-lo como está ou adaptá-lo a outros valores.
args <- commandArgs(trailingOnly = TRUE)
numbers <- if (length(args) > 0) as.numeric(args) else c(1, 2, 3, 4, 5)
cat("Mean: ", mean(numbers), "\n", sep = "")
Com os valores predefinidos, o código utiliza os números de 1 a 5; pela análise do código, espera-se que apresente Mean: 3. A etiqueta Mean é apresentada em inglês e este exemplo não foi verificado em execução.
Execute-o a partir do diretório que contém o ficheiro com Rscript mean.R. Para o executar a partir de outro diretório, indique o caminho do script, por exemplo Rscript /path/to/mean.R. No Windows, coloque entre aspas um caminho que contenha espaços, como em Rscript "C:/Users/Ada/My Scripts/mean.R"; use o formato de caminho aceite pela shell que abriu. Se Rscript não estiver em PATH, substitua-o pelo caminho completo do executável e mantenha o caminho do script como argumento separado.
Para executar uma expressão curta sem guardar um ficheiro, use a opção -e numa shell semelhante a POSIX ou no PowerShell, por exemplo Rscript -e 'mean(iris$Sepal.Length)'. Esta forma com aspas simples não funciona na Linha de Comandos do Windows, que trata as aspas simples como caracteres literais; nesse caso, use o exemplo com o script guardado num ficheiro. O conjunto de dados iris está disponível numa instalação padrão do R. As opções --help e --version pedem, respetivamente, a ajuda do comando e informações sobre a versão; --verbose solicita informações mais detalhadas durante a execução. Estas opções podem ser úteis para confirmar os detalhes de invocação ou diagnosticar uma execução. -e começa com um único hífen, por isso nem todas as opções começam com dois.
Passar argumentos a um script R
Um script pode ler os valores que surgem depois do nome do ficheiro com commandArgs(trailingOnly = TRUE). O exemplo acima converte cada argumento fornecido num número e calcula a média. Por exemplo, Rscript mean.R 10 20 30 passa três valores separados. Se um dos valores de entrada contiver espaços, coloque-o entre aspas na shell para que seja recebido como um único argumento. Indique claramente o formato de entrada esperado pelo script e adapte a conversão e a validação quando os dados não forem numéricos.
Agendar scripts R com tarefas cron
Em sistemas do tipo Unix, o cron pode iniciar um script segundo um horário definido. Edite o crontab do seu utilizador com crontab -e e, em seguida, adicione uma entrada como 0 2 * * * /usr/bin/Rscript /path/to/report.R para pedir uma execução diária às 2:00, de acordo com a configuração cron da máquina. Os caminhos do executável e do script são exemplos; use os caminhos existentes no computador que irá executar a tarefa.
As tarefas agendadas podem começar com um diretório de trabalho e um ambiente diferentes dos da shell interativa. Use caminhos absolutos para o executável, o script e os ficheiros de entrada ou saída. Se precisar de diagnosticar execuções agendadas, configure também a recolha da saída ou dos erros da tarefa. O cron é uma opção de agendamento para sistemas do tipo Unix; no Windows, pode utilizar o Agendador de Tarefas do sistema.
Integrar R com Git para controlar versões
O Git pode registar alterações aos scripts R e a outros ficheiros do projeto, facilitando a revisão das edições ou a recuperação de uma versão anterior. É opcional: não precisa do Git para executar um script com Rscript. No diretório do projeto, inicialize um repositório com git init, adicione os ficheiros que pretende acompanhar com git add e registe uma versão com git commit. Reveja o que vai ser incluído na versão e evite adicionar dados gerados ou credenciais, a menos que devam fazer parte do histórico do projeto.
Conclusão
Guarde o código num ficheiro R e execute-o com Rscript, indicando o caminho do script. Confirme que o R está instalado e que a shell consegue aceder ao executável; coloque os caminhos entre aspas quando necessário e passe os valores de entrada depois do nome do ficheiro. Para tarefas recorrentes, use um agendador e caminhos adequados ao ambiente em que será executada cada tarefa. Se quiser acompanhar as alterações aos scripts, use o Git.
Perguntas frequentes
-
Como instalo o R e o Rscript?
Instale o R seguindo as instruções para o seu sistema operativo. ORscriptestá incluído no R; neste fluxo de trabalho, não é necessário instalá-lo separadamente. -
Posso executar um script R no Windows?
Sim. Use a Linha de Comandos ou o PowerShell e executeRscript script.Rse o executável estiver disponível emPATH. Caso contrário, invoque o executável instalado indicando o caminho completo. Coloque entre aspas os caminhos com espaços, de acordo com as regras de utilização de aspas da shell. -
Qual é a diferença entre Rscript e R?
ORscriptdestina-se a executar um script ou uma expressão a partir da linha de comandos. O comandoRinicia normalmente uma sessão interativa, na qual pode introduzir comandos e consultar os resultados enquanto trabalha. -
Como posso verificar a versão instalada do Rscript?
ExecuteRscript --versionno terminal ou na linha de comandos. O comando tem de estar disponível emPATHou ser invocado pelo caminho completo. -
Como posso executar vários scripts R seguidos?
Numa shell do tipo Unix, ligue os comandos com&&, por exemploRscript first.R && Rscript second.R. O segundo comando só é executado se o primeiro terminar com sucesso. Para uma sequência mais longa, coloque as invocações num script de shell ou use outro agendador adequado ao seu sistema.