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:
Para Windows: https://cran.r-project.org/bin/windows/base/
Para Mac OS X: https://cran.r-project.org/bin/macosx/
Selecione
R-4.3.1-arm64.pkg
para OS X 11 ou superior, que usem os novos processadores M1 ou M2.Selecione
R-4.2.1.pkg
para OS X 10.13 e superior.Selecione
R-3.6.3.nnpkg
para OS X 10.11-10.12.Selecione
R-3.3.3.nnpkg
para OS X 10.19-10.10.Selecione
R-3.2.1-snowleopard.pkg
para OS X 10.6-10.8.
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+
.
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)
B.3.1 Console
Você pode executar todas as operações no console. Por exemplo, se você inserir 4 + 4
e 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.
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.
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.
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.
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.
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:
- Abra o link https://www.coursera.org/
- Crie uma conta (isso é gratuito!)
- Inscreva-se para R Programming na Johns Hopkins University (instrutor: Roger Peng) na guia “Cursos”
- 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:
<- 5) (a
[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.
<- 1:10) # ":" É usado para construir sequências de números inteiros (b
[1] 1 2 3 4 5 6 7 8 9 10
<- c(1, 3, 2, 4, pi)) # Use c() para construir um vetor, com elementos separados por vírgula (v
[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:
1] # Retorna a posição 1 b[
[1] 1
5:4] # Retorna as posições 5 e 4, nessa ordem order b[
[1] 5 4
-1] # Retorna todos menos o primeiro elemento b[
[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)
c(TRUE, FALSE, TRUE, FALSE, FALSE, TRUE, TRUE, FALSE, FALSE, FALSE)] b[
[1] 1 3 6 7
# Altera os valores numa dada posição em um vetor
5] <- 0 b[
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:
^2 # Quadrado de cada elemento em "b" b
[1] 1 4 9 16 0 36 49 64 81 100
^.5 # Raiz quadrada de cada elemento em "b" 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:
== 2 # Elementos que são iguais ao valor 2 b
[1] FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
< 5 # Elementos que são menores que o número 5 b
[1] TRUE TRUE TRUE TRUE TRUE FALSE FALSE FALSE FALSE FALSE
>= 5 # Elementos que são maiores ou iguais ao número 5 b
[1] FALSE FALSE FALSE FALSE FALSE TRUE TRUE TRUE TRUE TRUE
<= 5 | b / 4 == 2 # Elementos que são menores ou iguais a 5 OU (operador |) elementos que divididos por 4 sejam iguais a 2 b
[1] TRUE TRUE TRUE TRUE TRUE FALSE FALSE TRUE FALSE FALSE
> 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) b
[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