Principais referências desse material de Econometria com R:
- Cursos da Especialização em Data Science da John Hopkins.
- É possível “participar como ouvinte” (audit course) desses cursos, o que permite acessar a todo material (mas não pode fazer os testes e ganhar os certificados de conclusão).
- Livro "Using R for Introductory Econometrics" de Heiss (2020) (versão online gratuita)
- Livro "Panel Data Econometrics with R" de Croissant e Millo (2018)
Instalando R
-
Instalação da base do R (CRAN)
- Download R X.X.X for Windows
- Se o computador for 64-bits, opte pela versão 64-bits (+ rápido)
-
Instalação do Rtools (CRAN)
- RTools X.X > Rtools installer
- É um conjunto de ferramentas de compilação de várias linguagens (C, C++ e Fortran) que são necessárias para o funcionamento de alguns pacotes no R
-
Instalação do RStudio (RStudio Dowload)
- Download RStudio Desktop
- É uma interface de usuário para facilitar o uso do R
Usando R Studio
RStudio é dividido em 4 quadrantes:
- superior/esquerdo: source - onde ficam “blocos de nota” (scripts) com comandos a serem salvos
- superior/direito: ambiente - visualizar variáveis
- inferior/esquerdo: console - executar os comandos e ver resultados (é o R “bruto”)
- inferior/direito: arquivos/gráficos/pacotes/ajuda
Dica: Alterar o tema do RStudio (fundo branco pode cansar mais a visão durante o uso prolongado do software)
Tools > Global Options… > Appearance > Editor theme > Cobalt (meu preferido)
Diretório de trabalho
Definir um diretório de trabalho facilita o acesso aos arquivos da pasta (base de dados, etc.).
Session > Set Working Directory > Choose Directory…
setwd("C:/Users/Fabio/OneDrive/FEA-RP")
Dica: O comando para definir o diretório de trabalho aparecerá no console. Copie e cole no seu script para não precisar definir toda vez que abre o R Studio.
- Note que usa o “slash” (/) ao invés do “backslash” (\), então não dá para copiar diretamente o endereço de uma pasta e colar no R sem fazer ajustes:
setwd("C:\Users\Fabio\OneDrive\FEA-RP") # ERRADO!
setwd("C:/Users/Fabio/OneDrive/FEA-RP") # CORRETO!
setwd("C:\\Users\\Fabio\\OneDrive\\FEA-RP") # CORRETO!
Você pode trocar backslash (/) por slash(\), ou por dois backslashs (\\).
Executando comandos
- Execução direta no console: escreva
1 + 1no console e dê <Enter>
1 + 1
## [1] 2
- Execução pelo script: escreva o seguinte código abaixo, e dê
Ctrl + Enterna linha ou no código destacado. Note que o código do script é “jogado” no console.
rnorm(n=10, mean=0, sd=1) # Gerar 10 números ~ N(0, 1)
## [1] 0.70143921 0.62622352 -2.43105248 -1.37197530 0.53581775 -1.66196220
## [7] -0.09034954 -0.18229396 0.22264535 0.80023880
Ajuda para comandos
?rnorm
rnorm(n, mean = 0, sd = 1)
n: number of observations.
mean: vector of means.
sd: vector of standard deviations.
- Note acima em “Usage” que já há valores pré-definidos para
mean = 0esd = 1. Portanto, se você só informar on, a função irá funcionar, considerando os valores pré-definidos para os demais argumentos. - É possível escrever o código sem os nomes dos argumentos, mas devem ser inseridos na mesma ordem pré-definida da função.
rnorm(10, 0, 1)
- Também podemos trocar a ordem explicitando o nome do argumento (NÃO RECOMENDADO)
rnorm(mean=0, n=10, sd=1)
Pacotes no R
- Pacotes são coleções de funções, dados e códigos escritos por outras pessoas
- Por ser um software open source, o R possui muitos pacotes disponibilizados pela internet e muitos estatísticos/econometristas desenvolvem e disponibilizam seus próprios pacotes na internet.
- A instalação de um pacote só precisa ser feita uma única vez.
- No entanto, caso você atualize uma nova versão do R, é necessário instalar novamente todos os pacotes.
- Os pacotes podem ser obtidos em bibliotecas (libraries), como CRAN, e de indivíduos (normalmente disponibilizados no GitHub)
- O CRAN é administrado e, como existe uma curadoria para inserção e manutenção de pacotes, garante qualidade dos pacotes disponibilizados
- Tome cuidado com pacotes disponibilizados por individuos desconhecidos: pode haver códigos maliciosos!
Instalação via CRAN
quadrante inferior/direito > Packages > Install > (Nomes dos pacotes)
install.packages("ggplot2") # Pacote para criar graficos
Usando pacotes
Depois de instalar o pacote desejado, você precisa carregá-lo à sua sessão no R. Isto pode ser feito de duas formas
- Usar
library(nome_do_pacote) - Chamar o pacote indiretamente por meio de uma função contida no pacote
<nome_do_pacote>::<funcao_do_pacote>
Exemplo: Instalando pacotes do Github
- Github é um site que programadores podem disponibilizar e armazenar arquivos, como códigos, bases de dados, pacotes de R, etc.
- É possível instalar um pacote disponibilizado no Github diretamente do R.
- Primeiro, é necessário instalar o pacote
devtools
install.packages("devtools")
- Depois, é preciso obter o nome do author (do GitHub) e nome do pacote. Como exemplo, iremos baixar o pacote
dplyrdo autorhadley(este pacote, na realidade, pode ser baixado direto do CRAN).
# 2) chamando o pacote indiretamente
devtools::install_github("hadley/dplyr")
# 1) carregando pacote e depois usando sua função
library(devtools)
install_github("hadley/dplyr")
- CUIDADO! Ao carregar vários pacotes, talvez sejam carregadas suas funções com mesmo nome
- Neste caso, o R prioriza a função do pacote carregada por último
library(dplyr) # Pacote para manipulacao de base de dados
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(MASS) # Normalmente nao eh carregado diretamente (via outro pacote)
##
## Attaching package: 'MASS'
## The following object is masked from 'package:dplyr':
##
## select
- Uma forma de contornar o problema é usar
<nome_do_pacote>::<funcao_do_pacote>
select(...) # do pacote MASS
MASS:select(...) # do pacote MASS
dplyr::select(.data, ...) # do pacote dplyr
Atualizando pacotes
quadrante inferior/direito > Packages > Update > Select All > Install Updates
Ajuda
- Caso saiba o nome da função, é possível olhar sua documentação escrevendo
?<nome_da_funcao>(como visto anteriormente) - Caso saiba o nome do pacote, em alguns casos funciona
?<nome_do_pacote>, mas o ideal é buscar sua documentação no CRAN (diretamente no site ou via Google) - Por exemplo, podemos acessar a página do pacote
dplyrno CRAN: - Nela é possível ver a partir de qual versão do R funciona, os pacotes necessários para o seu funcionamento (Imports), os autores e sites.
- Em ‘Documentation’, é possível ver o seu ‘Reference manual’ onde são expostos o objetivo do pacotes e as funções, incluindo explicações de seu funcionamento.

-
Além disso, pode ser interessante ver aplicações do pacote e suas funções nas ‘vignettes’. Normalmente são expostas de maneira que podem ser replicadas no seu computador, o que acaba auxiliando na sua aplicação (verificar estrutura de base de dados necessária, sintaxes, etc.).
-
Caso não saiba quais funções/pacotes são utilizados para fazer algo, muitas vezes é possível encontrar a solução no Google utilizando palavras-chave (preferencialmente em inglês) junto de “R”.

-
Além de sites especializados em R e vídeos com exemplos de aplicações, é comum aparecer questões no site Stack Overflow (ou em Cross Validated, pertencente ao mesmo grupo) que é o site mais utilizado por programadores em diversas linguagens para esclarecer dúvidas.
-
Por R ser uma linguagem open source, há muitos usuários e, portanto, é comum achar perguntas/respostas que já solucionam o seu problema. Eventualmente, você pode fazer a sua pergunta, caso não encontre uma satisfatória.

ChatGPT e Bing Chat
- É possível ter um assistente para aprender a usar o R usando o chatbots como ChatGPT (https://chat.openai.com) e Bing Chat (https://www.bing.com/chat).
- Ambos ChatGPT e Bing Chat são alimentados por um modelo de linguagem natural (LLN) criado pela OpenAI, que são treinados com trilhões de documentos (páginas de internet, livros, artigos, etc.) e conseguem gerar textos baseados em contexto.
- A diferença entre os dois é que o ChatGPT utiliza o modelo GPT 3.5-turbo, enquanto o Bing Chat usa o GPT-4 e está ligado à internet.
- Especificamente para programação, gera-se respostas confiáveis a perguntas feitas ao chatbot, tornando-o uma ferramenta interessante para auxiliar o aprendizado no R.


Sincronização no GitHub
Não será detalhado aqui, mas é algo interessante para olhar.
R Markdown
Markdown é uma sintaxe de formatação simples para criar documento HTML, PDF ou Word.
Para mais detalhes de uso, veja:
- R Markdown (John Hopkins/Coursera)
- Curso Reproducible Templates for Analysis and Dissemination (Emory/Coursera)
- Livros: R Markdown: The Definitive Guide e R Markdown Cookbook
Uso do R Markdown
Quando você clicar no botão Knit, um documento será gerado, incluindo o conteúdo textual e os resultados dos chunks com códigos em R embutidos no documento.
Para gerar em pdf, pode ser necessário instalar o pacote
tinytex
Você pode embutir um chunk de código em R:
- abrindo com 3 acentos graves (`)
- {r nome_do_pedaco},
- código em R,
- e fechando com 3 acentos graves (`)
Por exemplo:
```{r cars} # Chamando esse _chunk_ com código de R como 'cars'
head(cars) # Visualizando 6 linhas iniciais da base de dados 'cars'
summary(cars) # Resumindo base de dados 'cars'
```
output:
head(cars) # Visualizando 6 linhas iniciais da base de dados 'cars'
## speed dist
## 1 4 2
## 2 4 10
## 3 7 4
## 4 7 22
## 5 8 16
## 6 9 10
summary(cars) # Resumindo base de dados 'cars'
## speed dist
## Min. : 4.0 Min. : 2.00
## 1st Qu.:12.0 1st Qu.: 26.00
## Median :15.0 Median : 36.00
## Mean :15.4 Mean : 42.98
## 3rd Qu.:19.0 3rd Qu.: 56.00
## Max. :25.0 Max. :120.00
Também, no topo do quadrante sup-esq, é possível criar clicando no ícone “+C” e selecionando “R” (ou apertando Ctrl + Alt + I).
Incluindo Gráficos
Você pode incluir gráficos no documento usando plot() dentro do chunk com código R. Além disso, o parâmetro echo = FALSE retira do PDF/HTML gerado o chunk de código, gerando apenas, neste caso, a figura.
Por exemplo:
```{r pressure, echo = FALSE}
plot(pressure) # Gráfico da base de dados `pressure`
```
output:
*Ao invés de escrever echo = FALSE, é possível alterar a configuração do chunk após criá-lo:
Ícone de Config > Output > Show output only
Formatação no R Markdown
Bullets:
- bullet 1
- bullet 2
- bullet 3
output:
- bullet 1
- bullet 2
- bullet 3
Formatação de texto:
1. **negrito**
2. *itálico* ou _itálico_
3. link: <http://rmarkdown.rstudio.com>.
4. [link R Markdown](http://rmarkdown.rstudio.com)
5. destaque para `código em r`
output:
- negrito
- itálico ou itálico
- link: http://rmarkdown.rstudio.com.
- link R Markdown
- destaque para
código em r
Títulos de seções e subseções
# Título - 1º Nível
## Título - 2º Nível
### Título - 3º Nível
Quebra de texto
Ao terminar de escrever uma linha ou parágrafo, é necessário apertar <Enter> duas vezes. Caso aperta apenas uma vez, o R Markdown considerará que o texto continua na mesma linha:
Não pula linha
Não pula linha
Pula linha
Pula linha
output:
Não pula linha Não pula linha
Pula linha
Pula linha
Escrita em LaTeX
Também é possível usar os códigos em LaTeX para escrever expressões matemáticas usando $:
- Para incluir uma expressão LaTeX no meio do texto, como $\alpha + \beta + \gamma$,
usa-se cifrão (`$`) único em cada lado.
- Para destacar uma expressão, como $$\alpha + \beta + \gamma, \tag{1}$$ é necessário
colocar 2 cifrões (`$`) de cada lado da expressão, assim como no LaTeX.
output:
- Para incluir uma expressão em LaTeX no meio do texto, como
$\alpha + \beta + \gamma$, usa-se cifrão (
$) único em cada lado. - Para destacar uma expressão, como
$$\alpha + \beta + \gamma, \tag{1}$$ é necessário colocar 2 cifrões (
$) de cada lado da expressão, assim como no LaTeX.
Para aprender a usar LaTeX:
- Curso LaTeX for Students, Engineers and Scientists (edX) (é possível cursar sem pagar - audit course)
Exportando documentos em outros formatos
No código inicial do .Rmd, é possível alterar o formato exportado pelo documento:
- para PDF:
output: pdf_document - para HTML:
output: html_document
Templates para HTML
Existem diversos templates para documentos HTML e, para utilizá-los, é preciso instalar
o pacote rmdsformats
install.packages("rmdformats")
Após a instalação, teste:
output: rmdformats::materialoutput: rmdformats::readthedownoutput: rmdformats::downcuteoutput: rmdformats::robobookoutput: rmdformats::html_cleanoutput: rmdformats::html_docco