# Carregando pacotes ------------------------------------------------------
library(readr)
# Carregando os dados -----------------------------------------------------
base_de_dados <- read_csv2("dados/voos_de_janeiro.csv")
# Pipe (%>%) --------------------------------------------------------------
library(magrittr)
# |>
# Caso não tenha instalado: install.packages("magrittr")
# Transforma funçõe aninhadas em funções
# sequenciais
# g(f(x)) = x %>% f() %>% g()
x %>% f() %>% g() # CERTO
x %>% f(x) %>% g(x) # ERRADO
# Receita de bolo sem pipe.
# Tente entender o que é preciso fazer.
filter(select(base_de_dados, origem, destino), origem == "EWR")
esfrie(
asse(
coloque(
bata(
acrescente(
recipiente(
rep(
"farinha",
2
),
"água", "fermento", "leite", "óleo"
),
"farinha", até = "macio"
),
duração = "3min"
),
lugar = "forma", tipo = "grande", untada = TRUE
),
duração = "50min"
),
"geladeira", "20min"
)
# Veja como o código acima pode ser reescrito
# utilizando-se o pipe.
# Agora realmente se parece com uma receita de bolo.
recipiente(rep("farinha", 2), "água", "fermento", "leite", "óleo") %>%
acrescente("farinha", até = "macio") %>%
bata(duração = "3min") %>%
coloque(lugar = "forma", tipo = "grande", untada = TRUE) %>%
asse(duração = "50min") %>%
esfrie("geladeira", "20min")
# ATALHO DO %>%: CTRL (command) + SHIFT + M
base_de_dados %>%
select(origem, destino) %>%
filter(origem == "EWR") %>%
head()
# Exercício ---------------------------------------------------------------
# 1. Reescreva o código abaixo utilizando o pipe. Na sua opinião,
# de que forma é mais facil de ler e entender o que está sendo executado?
# Com ou sem o pipe?
round(mean(base_de_dados$atraso_chegada, na.rm = TRUE), 2)
mean(base_de_dados$atraso_chegada, na.rm = TRUE) %>%
round(2)
base_de_dados$atraso_chegada %>%
mean(na.rm = TRUE) %>%
round(2)
# resolucoes:
mean(base_de_dados$atraso_chegada, na.rm = TRUE) %>%
round(2)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.