Escolar Documentos
Profissional Documentos
Cultura Documentos
Victor Dalton
Tecnologia da Informação - Turma dos Feras RFB (Bônus) Aula 10.1
Aula 10.1
Tecnologia da Informação - Turma dos Feras RFB
(Bônus)
Sumário
SUMÁRIO ...............................................................................................................................................................2
TIDYVERSE .............................................................................................................................................................3
2 de 33| www.direcaoconcursos.com.br
Prof. Victor Dalton
Tecnologia da Informação - Turma dos Feras RFB (Bônus) Aula 10.1
Tidyverse
Tidyverse é um pacote guarda-chuva, onde dentro deste encontram-se alguns diversos (sub)pacotes, a
saber:
A partir de então, vamos aprofundar nossos conhecimentos sobre o tidyverse. Ainda, lembro que todos os
comandos ilustrados a partir deste momento devem ser praticados por você no R Studio, conforme orientado na
videoaula.
3 de 33| www.direcaoconcursos.com.br
Prof. Victor Dalton
Tecnologia da Informação - Turma dos Feras RFB (Bônus) Aula 10.1
Comando Select
O comando Select faz parte da biblioteca dplyr, lembrando que esta é a biblioteca responsável pela
transformação de dados.
Este comando é utilizado para selecionar colunas de um banco de dados, lembrando muito a função select
simples de um SQL.
Vamos considerar o trabalho com o gapminder, este dataframe vai ser a nossa base de estudo.
library(gapminder)
library(dplyr)
gapminder %>%
select(country, continent)
Neste caso estamos chamando as bibliotecas gapminder (como já dito, a nossa base de dados) e a biblioteca
dplyr (para utilização do comando select).
Chamamos a nossa base de dados gapminder e com o conector %>% escolhemos as colunas country e
continent com o comando select.
4 de 33| www.direcaoconcursos.com.br
Prof. Victor Dalton
Tecnologia da Informação - Turma dos Feras RFB (Bônus) Aula 10.1
O resultado que é retornado acaba sendo uma base de dados com as 1.704 linhas porém agora com apenas
duas colunas, sendo elas country e continent.
Comando Filter
O uso do comando filter é exatamente para filtrar as linhas da nossa base de dados.
library(gapminder)
library(dplyr)
gapminder %>%
filter(year == 1992)
Neste comando queremos encontrar os valores na nossa base de dados onde a coluna “year” tenha o valor
“1992”, sendo assim, serão mostradas todas as linhas onde o valor 1992 seja encontrado na coluna year.
Neste caso temos todas as 6 colunas, porém agora apenas 142 linhas, onde todas as linhas são referentes ao
ano de 1992.
5 de 33| www.direcaoconcursos.com.br
Prof. Victor Dalton
Tecnologia da Informação - Turma dos Feras RFB (Bônus) Aula 10.1
O comando filter aceita mais de um parâmetro, sendo assim, é possível “garimpar” valores que tenham mais
potencial para a análise de dados. Veja o exemplo a seguir.
library(gapminder)
library(dplyr)
gapminder %>%
Neste comando queremos encontrar a linha que na coluna “country” tenha o valor “Brazil” e na coluna “year”
tenha o valor “2002”.
Neste caso temos apenas uma linha que corresponde ao país Brasil no ano de 2002.
Comando Arrange
O comando arrange é um comando de ordenação, sendo assim, podemos visualizar as informações da base
de dados ordenados conforme nos for mais conveniente.
library(gapminder)
library(dplyr)
gapminder %>%
arrange(lifeExp)
Neste caso estamos colocando em ordem crescente os valores da coluna lifeExp (Expectativa de vida) nos
utilizando da base de dados gapminder.
6 de 33| www.direcaoconcursos.com.br
Prof. Victor Dalton
Tecnologia da Informação - Turma dos Feras RFB (Bônus) Aula 10.1
Perceba que foi retornado os valores de lifeExp do menor para o maior, sendo Rwanda o país com a menor
expectativa de vida.
É possível colocar em ordem decrescente adicionando o comando desc dentro do comando arrange. Veja o
código a seguir.
library(gapminder)
library(dplyr
gapminder %>%
arrange(desc(lifeExp))
Este é o retorno do comando para ordem decrescente. Veja como o Japão apresenta a maior expectativa de
vida, tendo seu auge em 2007.
Comando Mutate
Este comando é útil para criação de uma nova coluna ou até mesmo para a modificação de uma coluna já
existente.
Consideramos que a expectativa de vida na nossa base de dados está em anos, porém gostaríamos de ver a
expectativa de vida em meses, desta forma podemos usar o comando mutate. Observe o código abaixo.
library(gapminder)
library(dplyr)
gapminder %>%
mutate(lifeExp = lifeExp*12)
7 de 33| www.direcaoconcursos.com.br
Prof. Victor Dalton
Tecnologia da Informação - Turma dos Feras RFB (Bônus) Aula 10.1
Sabendo que o ano tem doze meses multiplicamos o valor por 12, assim modificamos a coluna.
Para criar uma nova coluna utilizamos também o comando mutate. Analise o seguinte código.
library(gapminder)
library(dplyr)
gapminder %>%
mutate(lifeExpMonths = lifeExp*12)
Agora temos uma nova coluna chamada lifeExpMonths, que é uma coluna onde a expectativa de vida é
calculada em meses, preservando assim a coluna lifeExp. Tal coluna irá ser acrescentada ao nosso dataframe, mais
à direita, sem modificar as colunas já existentes.
8 de 33| www.direcaoconcursos.com.br
Prof. Victor Dalton
Tecnologia da Informação - Turma dos Feras RFB (Bônus) Aula 10.1
Comando GGPLOT
O comando ggplot faz parte do pacote ggplot2. Este é o comando que permite a construção de gráficos no
tidyverse.
library(gapminder)
library(dplyr)
library(ggplot2)
# Gapminder 2002
gapminder2002 <- gapminder %>%
filter(year == "2002")
Além de chamar a biblioteca ggplot2 também criamos uma variável gapminder2002, onde essa variável
mostra os valores referentes apenas ao ano de 2002.
A partir deste momento podemos criar diversas possibilidades de gráficos. Vamos dar uma olhada em alguns
comandos.
Neste gráfico é possível perceber que a população (pop) está no eixo x, enquanto o PIB (gdpPercap) está no
eixo y.
9 de 33| www.direcaoconcursos.com.br
Prof. Victor Dalton
Tecnologia da Informação - Turma dos Feras RFB (Bônus) Aula 10.1
Perceba que neste novo código trocamos o eixo y para a expectativa de vida (lifeExp).
Além de trabalhar com quais parâmetros vão estar no eixo x ou eixo y, é possível colocar escala logarítmica
nos eixos. Repare no seguinte comando
10 de 33| www.direcaoconcursos.com.br
Prof. Victor Dalton
Tecnologia da Informação - Turma dos Feras RFB (Bônus) Aula 10.1
Perceba a adição do comando scale_x_log10() no código. Isto quer dizer que colocamos o eixo x em escala
logarítmica utilizando a base 10. Em alguns casos, a colocação de um eixo em base logarítmica permitirá uma
visualização mais “agradável” do gráfico.
Agora com o comando scale_y_log10(), temos também o eixo y em escala logarítmica na base 10.
Perceba que todos os comandos para criação de gráficos são feitos em camadas, isso que torna o ggplot2 uma
ferramenta muito organizada para criação de gráficos.
11 de 33| www.direcaoconcursos.com.br
Prof. Victor Dalton
Tecnologia da Informação - Turma dos Feras RFB (Bônus) Aula 10.1
Conhecendo a forma de criar gráficos, vamos dar uma visualizada em como trabalhar a estética do gráfico.
Estética no gráfico
Destaques visuais podem ajudar na análise dos dados em uma distribuição de um gráfico.
Através da estética podemos analisar pontos que podem ser importantes para a análise de dados e o pacote
ggplot2 dá essa possibilidade.
library(gapminder)
library(dplyr)
library(ggplot2)
Perceba que interessante. Agora colocamos um pouco mais de cor em nosso gráfico.
Com o comando color = continent temos a representação de cada continente com uma cor diferente, além
do comando size = gdpPercap permitir dar tamanhos diferentes para os pontos sendo diretamente proporcional
ao PIB de cada país.
12 de 33| www.direcaoconcursos.com.br
Prof. Victor Dalton
Tecnologia da Informação - Turma dos Feras RFB (Bônus) Aula 10.1
Lapidando o Gráfico
Depois de aprender a fazer a trabalhar com a estética de um gráfico, vamos aprender a replicar gráficos para
cada categoria.
Digamos que queremos olhar os valores de população, expectativa de vida, e PIB por cada continente, vamos
utilizar o seguinte comando.
library(gapminder)
library(dplyr)
library(ggplot2)
filter(year == 2002)
Utilizando o comando facet_wrap(~ continent) é possível criar um gráfico de pontos para cada continente,
analisando separadamente os continentes, cada um em sua “face”.
E se for necessário criar novos gráficos para cada ano? Bem, vamos trocar a última linha do código acima pelo
código abaixo.
13 de 33| www.direcaoconcursos.com.br
Prof. Victor Dalton
Tecnologia da Informação - Turma dos Feras RFB (Bônus) Aula 10.1
Agora além de replicar os gráficos por ano, ainda utilizamos o conceito de color para distinguir os países em
relação ao continente.
Comando Summarize
Esse comando é utilizado para sumarizar os dados em alguma métrica de interesse, como por exemplo a
média, mediana, a variância, a frequência, a proporção, entre outros.
library(gapminder)
library(dplyr)
gapminder %>%
14 de 33| www.direcaoconcursos.com.br
Prof. Victor Dalton
Tecnologia da Informação - Turma dos Feras RFB (Bônus) Aula 10.1
Neste caso utilizamos o comando summarize para encontrar a mediana da expectativa de vida na nossa base
de dados. Porém não foi uma boa estratégia pois temos diversos anos e fica complicado a comparação desta
forma, então vamos filtrar utilizando o comando já conhecido filter.
library(gapminder)
library(dplyr)
gapminder %>%
filter(year == 2002) %>%
summarize (medianLifeExp = median(lifeExp))
library(gapminder)
library(dplyr)
gapminder %>%
filter(year == 1957) %>%
Pronto, agora temos a mediana da expectativa de vida e o maior valor do PIB no ano de 1957.
15 de 33| www.direcaoconcursos.com.br
Prof. Victor Dalton
Tecnologia da Informação - Turma dos Feras RFB (Bônus) Aula 10.1
Comando GROUP_BY
Este comando agrupa uma coluna pelas suas categorias. As vezes ele é útil para sumarizar por agrupamentos.
Veja o código abaixo.
library(gapminder)
library(dplyr)
gapminder %>%
group_by(year) %>%
Perceba que aqui agrupamos os valores por ano, sendo possível encontrar a média da expectativa de vida e o
valor máximo do PIB em cada ano.
Agora digamos que queremos encontrar valores de média e máximo para um ano específico, neste caso vamos
nos valer do comando filter.
library(gapminder)
library(dplyr)
gapminder %>%
group_by(continent) %>%
16 de 33| www.direcaoconcursos.com.br
Prof. Victor Dalton
Tecnologia da Informação - Turma dos Feras RFB (Bônus) Aula 10.1
Perceba que encontramos valores de média e o maior valor de PIB para os continentes no ano de 1997.
Colocando em gráficos
Conhecidos os comandos, vamos agora juntar tudo que aprendemos até o momento e criar gráficos a partir
da nossa base de dados.
library(gapminder)
library(dplyr)
library(ggplot2)
maxGdpPercap = max(gdpPercap))
A variável “por_ano” é uma nova base de dados onde está agrupada pela ordem dos anos e continente. Neste
caso estamos analisando um gráfico onde mostra a evolução da média de vida da população (eixo y) pelo passar
do tempo em ano (eixo x).
17 de 33| www.direcaoconcursos.com.br
Prof. Victor Dalton
Tecnologia da Informação - Turma dos Feras RFB (Bônus) Aula 10.1
Perceba também que neste código nós iniciamos o eixo y em 0 pelo comando expand_limits(y = 0). Este
comando é utilizado para normalizar nosso gráfico de pontos, fazendo o eixo y começar no zero.
Pode-se utilizar o comando filter para olhar algo específico. No exemplo abaixo queremos obter dados apenas
relacionados ao ano de 1987.
library(gapminder)
library(dplyr)
library(ggplot2)
Perceba que na segunda parte do código criamos uma nova variável em que queremos apenas os valores onde
na coluna “year” tenho um valor correspondente a 1987, agrupado por continentes.
18 de 33| www.direcaoconcursos.com.br
Prof. Victor Dalton
Tecnologia da Informação - Turma dos Feras RFB (Bônus) Aula 10.1
No caso é construído um gráfico de pontos comparando a média do PIB em relação à média da expectativa de
vida.
Tipos de visualização
Existem diversos tipos de gráficos de linhas, gráficos de barras, histogramas, boxplots, gráficos de dispersão
(o tipo que vimos até agora), entre outras infinidades de gráficos. Vamos dar uma olhada como montar os 4
primeiros tipos de gráficos citados.
Gráfico de Linhas
Este é um tipo de gráfico para representação de séries temporais, ou seja, para observação de fatos ao longo
do tempo.
Observe o código a seguir.
library(gapminder)
library(dplyr)
library(ggplot2)
summarize(mediaLifeExp = mean(lifeExp),
19 de 33| www.direcaoconcursos.com.br
Prof. Victor Dalton
Tecnologia da Informação - Turma dos Feras RFB (Bônus) Aula 10.1
maxGdpPercap = max(gdpPercap))
O comando geom_line() permite a exibição de um gráfico do tipo gráfico de linha. Neste caso estamos
analisando a média de vida (eixo y) pelo tempo (eixo x).
Gráfico de linha
Gráfico de barra
O gráfico de barras é muito útil para análise de dados categóricos, onde são representados por barras de
mesma largura mas com altura proporcional a seu valor.
library(gapminder)
library(dplyr)
library(ggplot2)
20 de 33| www.direcaoconcursos.com.br
Prof. Victor Dalton
Tecnologia da Informação - Turma dos Feras RFB (Bônus) Aula 10.1
Neste código é mostrado a relação do PIB por continente. A camada geom_col() permite que seja feito um
gráfico do tipo gráfico de barras.
Gráfico de Barras
Histograma
Histograma se parece muito com um gráfico de barras, porém sua finalidade é demonstrar uma distribuição
de frequências.
No caso do histograma a base representa uma classe e altura representa a frequência absoluta ou a
quantidade com o valor que essa classe ocorre.
library(gapminder)
library(dplyr)
21 de 33| www.direcaoconcursos.com.br
Prof. Victor Dalton
Tecnologia da Informação - Turma dos Feras RFB (Bônus) Aula 10.1
library(ggplot2)
O código acimo mostra como a população em 2002 está distribuída. O comando geom_histogram() permite
a criação de um histograma.
O uso do comando bins é referente a quantidade de barras utilizadas para criar o histograma. Por padrão o
ggplot2 utiliza 30 barras ou intervalos, isso pode ser mudado através deste comando.
Histograma
22 de 33| www.direcaoconcursos.com.br
Prof. Victor Dalton
Tecnologia da Informação - Turma dos Feras RFB (Bônus) Aula 10.1
Boxplots
Boxplot é uma ferramenta gráfica para análise de outliers, ajudando como complementação da análise de
dados.
Este é um tipo de gráfico que se utiliza dos conceitos de primeiro quartil, mediana, terceiro quartil e valores
de máximo e mínimo.
library(gapminder)
library(dplyr)
library(ggplot2)
filter(year == 1952)
Neste código é feito a criação do gráfico do tipo boxplot pelo uso do comando geom_boxplot().
Boxplot
23 de 33| www.direcaoconcursos.com.br
Prof. Victor Dalton
Tecnologia da Informação - Turma dos Feras RFB (Bônus) Aula 10.1
Qual das seguintes alternativas seria impressa depois de utilizar o comando world_happiness %>% filter
(Happiness.Score > 7.5)?
A)
B)
24 de 33| www.direcaoconcursos.com.br
Prof. Victor Dalton
Tecnologia da Informação - Turma dos Feras RFB (Bônus) Aula 10.1
C)
Comentário:
Veja que queremos valores de Happiness.Score maiores que 7.5, portanto queremos a alternativa que
apresente valores maiores de 7.5.
Na alternativa a) o valor é 5.99, portanto não faz sentido que este seja o valor impresso na tela.
Na alternativa b) temos valores muito inferiores a 7.5, não tem a possibilidade de ser esta a resposta
Na alternativa c) temos valores acima de 7.5, portanto esta é nossa alternativa correta.
25 de 33| www.direcaoconcursos.com.br
Prof. Victor Dalton
Tecnologia da Informação - Turma dos Feras RFB (Bônus) Aula 10.1
Vamos começar pelos eixos. O valor do eixo x corresponde a coluna lifeExp e o valor do eixo y corresponde a
coluna gpdPercap, portanto a alternativa c) está incorreta.
Pela legenda percebemos que o tamanho é relativo a coluna pop, portanto a letra d) já se mostra incorreta.
A cor é relativa ao continente, portanto a letra b) está incorreta.
A)
B)
26 de 33| www.direcaoconcursos.com.br
Prof. Victor Dalton
Tecnologia da Informação - Turma dos Feras RFB (Bônus) Aula 10.1
C)
Comentário:
Vamos analisar cada uma das opções.
Na alternativa a) temos duas variáveis calculadas, med_rating que faz parte do comando, e med_sugar, que
não faz parte do comando. Portanto essa alternativa é incorreta.
Na alternativa b) temos med_rating, que foi pedido no código, e avg_sugar, que também foi pedido no
código, porém como não fizemos a leitura de todos os arquivos aqui temos uma alternativa que é muito forte para
ser a correta.
Na alternativa c) temos min_cals e max_cals, que são dois comandos que não estão no código.
Portanto a alternativa b) é a correta
27 de 33| www.direcaoconcursos.com.br
Prof. Victor Dalton
Tecnologia da Informação - Turma dos Feras RFB (Bônus) Aula 10.1
B) geom_box()
C) geom_hist()
D) geom_col()
Comentário:
Primeiro é preciso perceber que este é um gráfico de barras, portanto o código para que isto ocorra é
geom_col().
28 de 33| www.direcaoconcursos.com.br
Prof. Victor Dalton
Tecnologia da Informação - Turma dos Feras RFB (Bônus) Aula 10.1
Lista de questões
1. (Direção Concursos – Questão inédita – Tidyverse – 2021)
Considere a seguinte base de dados.
Qual das seguintes alternativas seria impressa depois de utilizar o comando world_happiness %>% filter
(Happiness.Score > 7.5)?
A)
B)
C)
29 de 33| www.direcaoconcursos.com.br
Prof. Victor Dalton
Tecnologia da Informação - Turma dos Feras RFB (Bônus) Aula 10.1
30 de 33| www.direcaoconcursos.com.br
Prof. Victor Dalton
Tecnologia da Informação - Turma dos Feras RFB (Bônus) Aula 10.1
A)
B)
C)
31 de 33| www.direcaoconcursos.com.br
Prof. Victor Dalton
Tecnologia da Informação - Turma dos Feras RFB (Bônus) Aula 10.1
A) geom_bar()
B) geom_box()
C) geom_hist()
D) geom_col()
Gabarito
1. C 3. B
2. A 4. D
32 de 33| www.direcaoconcursos.com.br
Prof. Victor Dalton
Informática p/ XXXX Aula 00
Resumo direcionado
Comandos dplyr
Select() Seleciona colunas
Comandos ggplot2
ggplot() Obtém o painel onde se encontra o gráfico
33 de 33| www.direcaoconcursos.com.br