B Introdução ao R e RStudio

Ao longo do livro, incluímos códigos em R para estimação, simulação e construção de exemplos. Usamos o RStudio para gerar os slides. Para personalizá-los ao seu gosto e propósito, presumimos que você usará o R Markdown. Abaixo, incluímos guias para configurar o R e o RStudio em seu computador, bem como alguns comandos que são usados com frequência.

B.1 R e RStudio

O R é um software livre e gratuíto, usado comumente em programação e análise estatística. Dado que os participantes das Jornadas de Aprendizado têm diferentes formações e preferências por um ou outro pacote estatístico, usamos R para garantir que todos tenham a mesma experiência. Sugerimos o uso de R, de forma geral, por sua flexibilidade, riqueza de aplicações e suporte abrangente em fóruns online.

O RStudio é um ambiente de desenvolvimento aberto, integrado e gratuito, com uma interface gráfica que torna o R mais amigável e organizado. R Markdown, um recurso presente no RStudio, permite a fácil combinação de código estatístico e texto, que pode ser salvo em formato PDF, HTML ou DOC.

B.2 Baixando o R e o RStudio

B.2.1 Baixando o R

R can be freely downloaded from CRAN at the link corresponding to your operating system:

B.2.2 Baixando o RStudio

O RStudio pode ser baixado gratuitamente no site do RStudio, https://www.rstudio.com/products/rstudio/download/. Na tabela, clique no botão azul Download na parte superior da coluna esquerda, “RStudio Desktop Open Source License”, conforme ilustrado abaixo na Figura B.1. Depois de selecionar esse botão, a página irá apresentar uma lista de opções de download, conforme ilustrado na Figura B.2.

  • For Windows, select Windows 10/8/7.

  • For Mac OS X, select Mac OS X 10.13+.

Selecione Download na coluna "RStudio Desktop Open Source License"

Figura B.1: Selecione Download na coluna “RStudio Desktop Open Source License”

Selecione o link 'Windows 10/8/7' para Windows ou o link 'Mac OS X 10.13+' para Mac

Figura B.2: Selecione o link ‘Windows 10/8/7’ para Windows ou o link ‘Mac OS X 10.13+’ para Mac

B.3 Interface do RStudio

Quando você abre o RStudio pela primeira vez, haverá três painéis visíveis, conforme ilustrado na Figura B.3 abaixo.

  • Console (painel esquerdo)

  • Accounting (painel superior direito): inclui as guias Environment e Histórico

  • Diversos (painel inferior direito)

Quando você abre o RStudio, há três painéis visíveis: Console (esquerda), Console (canto superior direito) e Diversos (canto inferior direito).

Figura B.3: Quando você abre o RStudio, há três painéis visíveis: Console (esquerda), Console (canto superior direito) e Diversos (canto inferior direito).

B.3.1 Console

Você pode executar todas as operações no console. Por exemplo, se você inserir 4 + 4e pressionar a tecla Enter/Return, o Console retornará [1] 8.

Para garantir que todos estejam preparados para usar o R durante as Jornadas de Aprendizado, pedimos aos participantes que executem uma linha de código no Console para baixar os pacotes de R usados no curso. Os pacotes são fragmentos de código reproduzível que permitem um ganho de eficiência ao usar o R. Para executar essas linhas, copie o código a seguir no Console e pressione a tecla Return/Enter. Você precisa estar conectado à internet para baixar pacotes.

install.packages(c(
  "ggplot2", "dplyr", "AER", "arm", "MASS", "sandwich",
  "lmtest", "estimatr", "coin", "randomizr", "DeclareDesign"
))

Se o download for bem-sucedido, seu Console se parecerá com a Figura B.4, exceto que os URLs serão diferentes dependendo de sua localização.

Uma imagem do Console após a execução das linhas de código listadas acima

Figura B.4: Uma imagem do Console após a execução das linhas de código listadas acima

B.3.2 Editor

Para escrever e salvar código, abriremos um quarto painel, o Editor, clicando no ícone com uma página branca com um sinal de mais (+) no canto superior esquerdo do RStudio e selecionando R Script, conforme ilustrado na Figura B.5.

Crie um novo script R e abra o painel do editor selecionando `R Script` no menu suspenso

Figura B.5: Crie um novo script R e abra o painel do editor selecionando R Script no menu suspenso

Uma vez aberto o script R, devem existir quatro painéis dentro no RStudio, agora com a adição do painel Editor. Podemos fazer calculos aritméticos simples inserindo uma fórmula no editor e pressionando Control + Enter (Windows) ou Command + Enter (Mac). A fórmula e a “resposta” aparecerão no Console, conforme ilustrado na Figura B.6, com caixas vermelhas adicionadas para dar ênfase.

Uma expressão aritmética é inserida no editor e avaliada no console. As caixas vermelhas são adicionadas para dar ênfase.

Figura B.6: Uma expressão aritmética é inserida no editor e avaliada no console. As caixas vermelhas são adicionadas para dar ênfase.

R pode ser usado para qualquer operação aritmética, incluindo, entre outros, adição (+), subtração (-), multiplicação escalar (*), divisão (/) e exponenciação (^).

B.3.3 Painél de Cálculos

Além das funções básicas, também podemos armazenar valores, dados e funções no ambiente global. Para atribuir um valor a uma variável usamos o operador <-. Todos os valores armazenados, funções e dados aparecerão na guia Environment no Painel de Cálculo Na Figura B.7, definimos a variável t para assumir o valor \(3 \times \frac{6}{14}\) e podemos ver que ela foi armazenada em Valores (Data).

Também carregamos um conjunto de dados. Aqui, “ChickWeight” é um banco de dados incorporado ao R. No entanto, a maioria dos bancos de dados será carregada da web ou de outros arquivos em seu computador por meio de um método alternativo. Podemos ver que o ChickWeight contém 578 observações de 4 variáveis e é armazenado no Ambiente (Environment). Ao clicar no nome ChickWeight, uma guia será aberta com o conjunto de dados ao lado de seu código, na janela de edição.

O valor 3 * (6/14) é atribuído à variável t (em vermelho) e o conjunto de dados ChickWeight é adicionado ao ambiente global (em azul). As caixas são adicionadas para enfatizar.

Figura B.7: O valor 3 * (6/14) é atribuído à variável t (em vermelho) e o conjunto de dados ChickWeight é adicionado ao ambiente global (em azul). As caixas são adicionadas para enfatizar.

Os workshops das Jornadas de Aprendizado utilizam muitas ferramentas no R para analisar e visualizar dados. Por enquanto, podemos aprender algumas ferramentas básicas para examinar os dados. A função head() nos permite ver as primeiras seis linhas do conjunto de dados. summary() resume cada uma das colunas do conjunto de dados e dim() fornece as dimensões do conjunto de dados, com primeiro o número de linhas e depois as colunas.

head(ChickWeight) # Seis primeiras observações
  weight Time Chick Diet
1     42    0     1    1
2     51    2     1    1
3     59    4     1    1
4     64    6     1    1
5     76    8     1    1
6     93   10     1    1
summary(ChickWeight) # Estatísticas descritivas de todas as variáveis
     weight         Time          Chick     Diet   
 Min.   : 35   Min.   : 0.0   13     : 12   1:220  
 1st Qu.: 63   1st Qu.: 4.0   9      : 12   2:120  
 Median :103   Median :10.0   20     : 12   3:120  
 Mean   :122   Mean   :10.7   10     : 12   4:118  
 3rd Qu.:164   3rd Qu.:16.0   17     : 12          
 Max.   :373   Max.   :21.0   19     : 12          
                              (Other):506          
dim(ChickWeight) # Dimensões do banco de dados (linhas, colunas)
[1] 578   4

Diferente de outros pacotes estatísticos, o R permite aos usuários armazenar múltiplos conjuntos de dados, de quaisquer dimensões, simultaneamente. Essa característica torna o R bastante flexível para análises que utilizam multiplas metodologias.

B.3.4 Diversos

R fornece um conjunto de ferramentas, variando entre funções para criação de gráficos, modelos, estimativas, etc. O painel Diversos permite a visualização rápida de gráficos no RStudio. A Figura B.8 mostra um gráfico neste painel. As Jornadas de Aprendizado discutirão como criar figuras; por enquanto, não se preocupe com a representação gráfica do código no Editor.

Um gráfico ilustrativo usando o banco de dados `ChickWeight` feitos em R

Figura B.8: Um gráfico ilustrativo usando o banco de dados ChickWeight feitos em R

B.4 Aprendendo a usar o R

B.4.1 Recursos Online

Existem muitos recursos online para ajudar a aprender R. Recomendamos duas fontes:

  • Code School, que roda inteiramente no seu navegador de internet https://www.codeschool.com/courses/try-r.

  • Coursera, por meio de um curso de programação R online organizado pela Johns Hopkins University:

    1. Abra o link https://www.coursera.org/
    2. Crie uma conta (isso é gratuito!)
    3. Inscreva-se para R Programming na Johns Hopkins University (instrutor: Roger Peng) na guia “Cursos”
    4. Leia os materiais e assista aos vídeos da primeira semana. Os vídeos da primeira semana têm cerca de 2,5 horas de duração.

B.4.2 Prática Básica

Aqui fornecemos alguns fragmentos de código para familiarizá-lo com algumas práticas básicas em R. Recomendamos que você pratique digitando os fragmentos de código em seu Editor e, em seguida, avaliando-os.

B.4.2.1 Criando uma Sessão no R

Ao analisar dados, precisamos carregar arquivos que contém dados ou funções auxiliares, para então produzirmos resultados (tabelas, gráficos, relatórios, etc). Para fazer isso, devemos dar ao R um “endereço” no sistema no qual ele possa localizar tais arquivos. Para fazer isso de modo eficiente, usamos um diretório de trabalho, um caminho de arquivo no qual os arquivos relevantes são armazenados. Podemos identificar o diretório de trabalho atual usando getwd() e definir um novo usando setwd(). Observe que a sintaxe desses endereços varia de acordo com o sistema operacional utilizado.

getwd()
setwd("~/TaraLyn/EGAP Learning Days Admin/Workshop 2018_2 (Uruguay)/")

Pode ser necessário instalar pacotes além dos listados acima para executar determinadas funções. Para instalar pacotes, utilizamos install.packages(""), preenchendo o nome do pacote entre aspas (““), conforme segue. Você só precisa instalar pacotes uma vez.

install.packages("randomizr")

Uma vez que o pacote foi instalado, ele pode ser carregado e acessado usando library(pacote) onde o nome do pacote (no caso, pacote) é inserido entre parênteses e sem aspas.

library(randomizr)

Para limpar a memória do R, isto é, remover os objetos, funções ou valores armazenados no Painél de Cálculo, use rm(list = ls()). No geral, é útil também definir uma semente para os números aleatórios. Isso garante que a replicação das simulações seja possível em uma sessão R diferente, principalmente quando trabalhamos com métodos baseados em simulação.

rm(list = ls())
set.seed(2018) # Opcional: Definir uma semente para que o resultado seja replicável

B.4.2.2 Noções Básicas de R

Agora vamos explorar alguns comandos básicos. Para atribuir um escalar (elemento único) a uma variável, usamos o comando <- conforme discutido anteriormente:

# "<-" é o comando para atribuição. Ele é usado para definir objetos. Exemplo:
(a <- 5)
[1] 5

Também podemos atribuir um vetor de elementos a uma variável. Aqui usamos o mesmo comando <-, mas com foco na criação de um vetor de dados.

(b <- 1:10) # ":" É usado para construir sequências de números inteiros
 [1]  1  2  3  4  5  6  7  8  9 10
(v <- c(1, 3, 2, 4, pi)) # Use c() para construir um vetor, com elementos separados por vírgula
[1] 1.000 3.000 2.000 4.000 3.142

Podemos nos referir a um dado em um vetor buscando por sua posição entre colchetes [].

# Extraíndo elementos de um vetor:
b[1] # Retorna a posição 1
[1] 1
b[5:4] # Retorna as posições 5 e 4, nessa ordem order
[1] 5 4
b[-1] # Retorna todos menos o primeiro elemento
[1]  2  3  4  5  6  7  8  9 10
# Retorna todos os valores indicados como 'TRUE' (Verdadeiro) e omite os indicados como 'FALSE' (Falso)
b[c(TRUE, FALSE, TRUE, FALSE, FALSE, TRUE, TRUE, FALSE, FALSE, FALSE)]
[1] 1 3 6 7
# Altera os valores numa dada posição em um vetor
b[5] <- 0

Há uma variedade de funções que podem ser aplicadas a vetores como b.

sum(b) # Soma dos elementos em "b"
[1] 50
mean(b) # Média dos elementos em "b"
[1] 5
max(b) # Valor máximo dentre todos os elementos
[1] 10
min(b) # Valor minímo dentre todos os elementos
[1] 0
sd(b) # Desvio Padrão dos elementos em "b"
[1] 3.496
var(b) # Variância dos elementos em "b"
[1] 12.22

Também podemos aplicar transformações aritméticas em todos os elementos de um vetor:

b^2 # Quadrado de cada elemento em "b"
 [1]   1   4   9  16   0  36  49  64  81 100
b^.5 # Raiz quadrada de cada elemento em "b"
 [1] 1.000 1.414 1.732 2.000 0.000 2.449 2.646 2.828 3.000 3.162
log(b) # Log (base e) de cada elemento em "b"
 [1] 0.0000 0.6931 1.0986 1.3863   -Inf 1.7918 1.9459 2.0794 2.1972 2.3026
exp(b) # Exponencial (base e) de cada elemento em "b"
 [1]     2.718     7.389    20.086    54.598     1.000   403.429  1096.633  2980.958  8103.084 22026.466

Finalmente, podemos avaliar afirmações lógicas (ou seja, avaliar se uma dada ``condição X é verdadeira?’’) para os elementos de um vetor:

b == 2 # Elementos que são iguais ao valor 2
 [1] FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
b < 5 # Elementos que são menores que o número 5
 [1]  TRUE  TRUE  TRUE  TRUE  TRUE FALSE FALSE FALSE FALSE FALSE
b >= 5 # Elementos que são maiores ou iguais ao número 5
 [1] FALSE FALSE FALSE FALSE FALSE  TRUE  TRUE  TRUE  TRUE  TRUE
b <= 5 | b / 4 == 2 # Elementos que são menores ou iguais a 5 OU (operador |) elementos que divididos por 4 sejam iguais a 2
 [1]  TRUE  TRUE  TRUE  TRUE  TRUE FALSE FALSE  TRUE FALSE FALSE
b > 2 & b < 9 # Elementos que são maiores que 2 E (operador &) elementos que sejam menores que 9 (ou seja, números entre dois e nove, sem os limites inferior ou superior)
 [1] FALSE FALSE  TRUE  TRUE FALSE  TRUE  TRUE  TRUE FALSE FALSE
is.na(b) # Indica se há dados faltantes
 [1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
which(b < 5) # Indica quais posições do vetor satisfazem o requerimento(s) lógico(s)
[1] 1 2 3 4 5

A lógica desenvolvida aqui também se aplica a estruturas de dados mais complexas. Esses recursos básicos vão ajudar a compreender tópicos mais avançados durante as Jornadas de Aprendizado.

Tradução: Júlia Papa e Umberto Mignozzetti