Quando iniciamos o RStudio ou abrimos uma sessão do R no terminal, uma série de operações ocorrem no background para iniciar variáveis de ambiente ou mesmo carregar pacotes.
O chamado startup do R ocorre pela execução de diferentes scripts. Scripts originados da instalação do R, ou que o usuário pode customizar!!
Entendendo o Startup
Conforme a documentação oficial, o R inicializa procurando e executando os scripts denominados Renviron.site e Rprofile.site.
O primeiro aquivo é um shell script que permite a definição de diferentes variáveis de ambiente.
Já o Rprofile.site, é um script R que permite a execução de comandos e funções do R no startup da sessão.
Por serem arquivos executados no startup de qualquer sessão do R, são arquivos críticos, cujas mudanças podem impactar todos os seus projetos de formas diferentes e inesperadas.
Então… como personalizar a experiência do uso do R individualizada por projeto?
.Rprofile
O último arquivo buscado no startup do R é o .Rprofile. Trata-se de um arquivo em que se pode executar comandos e funções do próprio R.
Ele é buscado em duas localizações. A primeira é o diretório em que a sessão do R é iniciada. Caso ele não exista, o .Rprofile é buscado na home do usuário.
Digamos, por exemplo, que eu deseje que no startup de um projeto em R seja carregado o pacote dplyr
.
Primeiro, criamos o arquivo .Rprofile no diretório raiz desse projeto.
vim .Rprofile
E adicionamos a seguinte linha.
library(dplyr)
Ao iniciar o R deste diretório, observaremos a seguinte mensagem de startup:
R version 4.0.0 (2020-04-24) -- "Arbor Day"
Copyright (C) 2020 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)
R é um software livre e vem sem GARANTIA ALGUMA.
Você pode redistribuí-lo sob certas circunstâncias.
Digite 'license()' ou 'licence()' para detalhes de distribuição.
R é um projeto colaborativo com muitos contribuidores.
Digite 'contributors()' para obter mais informações e
'citation()' para saber como citar o R ou pacotes do R em publicações.
Digite 'demo()' para demonstrações, 'help()' para o sistema on-line de ajuda,
ou 'help.start()' para abrir o sistema de ajuda em HTML no seu navegador.
Digite 'q()' para sair do R.
Attaching package: ‘dplyr’
The following objects are masked from ‘package:base’:
intersect, setdiff, setequal, union
Com isso, o R carrega o dplyr
de forma programática, sem interação do usuário.
Diferentes usos podem ser aplicados no .RProfile:
- Definição de variáveis de ambientes:
Sys.setenv()
- Carregar pacotes e instalar pacotes:
library()
einstall.packages()
- Definir o mirror padrão de instalação de pacotes
- Definir opções de exibição:
options(digits = 5)
- Definir uma mensagem de boas-vindas
- Definir ações ao terminar a sessão do R
Indo além
No arquivo .Rprofile, duas funções especiais podem ser definidas: .First()
e .Last()
.
Quando definidas com estes nomes, o conteúdo delas é automáticamente executado no inicio e no fim da sessão do R, tal como o nome delas sugere.
Experimente alterar o .Rprofile que criamos anteriormente com o seguinte conteúdo:
.First <- function(){
library(dplyr)
cat("\nWelcome to the Matrix, hoje é dia ", date(), "\n")
}
.Last <- function(){
cat("\nHasta luego!","\n")
}
Abra uma sessão do R e em seguida a finalize para observar o conteúdo do .Rprofile sendo executado como configuramos.
Agradecimentos a @Trifenol pela escolha do tema deste post.