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.
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
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