R Markdown

This is an R Markdown document. Markdown is a simple formatting syntax for authoring HTML, PDF, and MS Word documents. For more details on using R Markdown see http://rmarkdown.rstudio.com.

LABORATÓRIO DE DADOS EM ECONOMIA

Caso seja necessário, é bom começar limpando o que há no espaço de trabalho:

rm(list = ls())

Em seguida, precisamos determinar qual o diretório de trabalho do R. Caso seja necessário, podemos mudar o outro diretório.

getwd() # Identificar o diretório de trabalho no R.
## [1] "/home/dinilson/Downloads"
#setwd("/home/dinilson/Downloads") # Definir outro espaço de trabalho.

Instalamos os pacotes que usaremos com o comando install.pachages('nome_do_pacote'). Em seguida, devemos carregá-los com o comando library(nome_do_pacote). Notem que o carregamento produz mensagens que são lidas no Console. Nesses logs, vemos, por exemplo, que o tidyverse trás consigo outros pacotes e mostra que algumas funções estão presentes em outro pacotes com o mesmo nome.

library(tidyverse) # Para ciência de dados.
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.4     ✔ readr     2.1.5
## ✔ forcats   1.0.0     ✔ stringr   1.5.1
## ✔ ggplot2   3.5.1     ✔ tibble    3.2.1
## ✔ lubridate 1.9.3     ✔ tidyr     1.3.1
## ✔ purrr     1.0.2     
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(lubridate) # Para trabalhar com datas.
library(sidrar) # Raspagem de dados do SIDRA-IBGE.
library (zoo) # Séries temporais.
## 
## Anexando pacote: 'zoo'
## 
## Os seguintes objetos são mascarados por 'package:base':
## 
##     as.Date, as.Date.numeric
library(ggthemes) # Gráficos bacanas no ggplot2.
library(scales) # Permite definir melhor o eixo do tempo no ggplot2.
## 
## Anexando pacote: 'scales'
## 
## O seguinte objeto é mascarado por 'package:purrr':
## 
##     discard
## 
## O seguinte objeto é mascarado por 'package:readr':
## 
##     col_factor

Data Frames

Vamos criar um data frame do zero. Primeiro criamos as variáveis (as colunas); em seguida nós as unimos em uma mesma tabela (ou data frame). Observem o uso da função c(), de concatenação, para agrupar mais de um argumento no objeto sendo criado.

Nome_Estudante <- c("Ana", "Cris", "Alex", "Daisy", "João", "Chico", 
                  "Maria", "Helena")
Idade <- c(27, 55, 34, 42, 20, 27, 34, 42)
Genero <- c("F", "F", "M", "F", "M", "M", "F", "F")
Notas <- c(4.5, 7.75, 8.25, 10, 6.5, 5.5, 4.5, 9)

Podemos ver a classe ou tipo de cada variável criada da seguinte maneira:

class(Nome_Estudante) # Character, ou palavras.
## [1] "character"
class(Idade) # Numeric, ou números.
## [1] "numeric"

Vamos juntar as variáveis criadas em um mesmo data frame, GQ. Atentem para a função, data.frame()que permite essa criação.

GQ <- data.frame(Nome_Estudante, Idade, Genero, Notas) # Gerando o data-frame

O data frame criado, o GQ, aparece no quadro Environment. Podemos vizualizar o data frame clicando no botão de tabela no canto desse objeto. Também podemos vizualizar o data frame criado apenas digitando o seu nome e rodando a linha de comando (sempre ctrl+enter).

GQ
##   Nome_Estudante Idade Genero Notas
## 1            Ana    27      F  4.50
## 2           Cris    55      F  7.75
## 3           Alex    34      M  8.25
## 4          Daisy    42      F 10.00
## 5           João    20      M  6.50
## 6          Chico    27      M  5.50
## 7          Maria    34      F  4.50
## 8         Helena    42      F  9.00

Vamos ver a classe desse objeto GQ:

class (GQ) # A classe é data frame.
## [1] "data.frame"

Em um data frame podemos juntar variáveis (colunas) de palavras e números. Para listar os nomes dessa variáveis usamos o seguinte comando:

names(GQ)
## [1] "Nome_Estudante" "Idade"          "Genero"         "Notas"

Podemos selecionar as variáveis do data frame criado:

GQ["Nome_Estudante"]   
##   Nome_Estudante
## 1            Ana
## 2           Cris
## 3           Alex
## 4          Daisy
## 5           João
## 6          Chico
## 7          Maria
## 8         Helena
GQ["Idade"]
##   Idade
## 1    27
## 2    55
## 3    34
## 4    42
## 5    20
## 6    27
## 7    34
## 8    42
GQ['Genero']
##   Genero
## 1      F
## 2      F
## 3      M
## 4      F
## 5      M
## 6      M
## 7      F
## 8      F
GQ['Notas']
##   Notas
## 1  4.50
## 2  7.75
## 3  8.25
## 4 10.00
## 5  6.50
## 6  5.50
## 7  4.50
## 8  9.00
GQ[2] # Selecionando a segunda coluna do data frame.
##   Idade
## 1    27
## 2    55
## 3    34
## 4    42
## 5    20
## 6    27
## 7    34
## 8    42

Podemos, ainda, selecionar partes do data-frame:

GQ[2:3] # Selecionando as colunas por intervalo.
##   Idade Genero
## 1    27      F
## 2    55      F
## 3    34      M
## 4    42      F
## 5    20      M
## 6    27      M
## 7    34      F
## 8    42      F

A mesma seleção poderia ser feita pelos nomes das colunas, usando a função de concatenação:

GQ[c("Idade", "Genero")]
##   Idade Genero
## 1    27      F
## 2    55      F
## 3    34      M
## 4    42      F
## 5    20      M
## 6    27      M
## 7    34      F
## 8    42      F

Podemos fazer seleções de linhas por suas posições. Por exemplo, gerando todos os valores relaticos à segunda linha:

GQ[2, ] # Entre os colchetes especificamos linhas e colunas. No caso, das colunas está vazio para selecionar todas.
##   Nome_Estudante Idade Genero Notas
## 2           Cris    55      F  7.75

Para criar um objeto com os valores da segunda linha, usamos o operador de atribuição ‘<-’:

Dados_Segunda_Linha <- GQ[2, ]
Dados_Segunda_Linha
##   Nome_Estudante Idade Genero Notas
## 2           Cris    55      F  7.75

Vamos gerar os valores das 1a. e 2a. linhas da coluna “Notas”:

GQ[1:2, "Notas"]
## [1] 4.50 7.75

Podemos criar uma partição do data-frame original:

GQ2 <- data.frame(GQ[2:3, c("Genero", "Notas")])
GQ2
##   Genero Notas
## 2      F  7.75
## 3      M  8.25

Selecionando linhas não consecutivas:

GQ[c(2, 4), c("Genero", "Notas")]
##   Genero Notas
## 2      F  7.75
## 4      F 10.00

Extraindo entradas usando o operador “$”:

GQ$Nomes_Estudante # Erro no nome da variável.
## NULL
GQ$Nome_Estudante # notem que após digitar o "$", o Rstudio já oferece as opções.
## [1] "Ana"    "Cris"   "Alex"   "Daisy"  "João"   "Chico"  "Maria"  "Helena"
GQ$Idade
## [1] 27 55 34 42 20 27 34 42

Vamos ver as classes dos dois últimos objetos:

class(GQ$Nome_Estudante)
## [1] "character"
class(GQ$Idade)
## [1] "numeric"

Vamos usar a função table() para extrair informações de frequência de nosso data-frame:

table(GQ$Genero) # No data frame existem 5 pessoas do sexo feminio e 3 do masculino.
## 
## F M 
## 5 3