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() e install.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.