knitr::opts_chunk$set(knitr.table.format = "html",
cache = TRUE,
echo = TRUE,
warning = FALSE,
message = FALSE)
Para esta lista de exercícios utilizaremos o banco de dados “gapminder”, que possui informações demográficas sobre países e continentes, de 1952 a 2007. A ideia é que ao finalizar esta lista, você tenha uma série de objetos e informações interessantes que permitirão a criação do seu primeiro projeto de portfólio!
Instale o pacote gapminder com a função install.packages()
Com a função library(), carregue os pacotes:
tidyverse
scales
gapminder
Atribua o banco de dados gapminder a um objeto de nome “bd_demog”
# Resposta aqui
#1
# install.packages('gapminder')
#2
library(gapminder)
library(tidyverse)
library(scales)
#3
bd_demog <- gapminder
#Respostas aqui
#1
colnames(bd_demog)
## [1] "country" "continent" "year" "lifeExp" "pop" "gdpPercap"
head(bd_demog)
tail(bd_demog)
View(bd_demog)
#2
str(bd_demog)
## tibble [1,704 x 6] (S3: tbl_df/tbl/data.frame)
## $ country : Factor w/ 142 levels "Afghanistan",..: 1 1 1 1 1 1 1 1 1 1 ...
## $ continent: Factor w/ 5 levels "Africa","Americas",..: 3 3 3 3 3 3 3 3 3 3 ...
## $ year : int [1:1704] 1952 1957 1962 1967 1972 1977 1982 1987 1992 1997 ...
## $ lifeExp : num [1:1704] 28.8 30.3 32 34 36.1 ...
## $ pop : int [1:1704] 8425333 9240934 10267083 11537966 13079460 14880372 12881816 13867957 16317921 22227415 ...
## $ gdpPercap: num [1:1704] 779 821 853 836 740 ...
#3
summary(bd_demog)
## country continent year lifeExp
## Afghanistan: 12 Africa :624 Min. :1952 Min. :23.60
## Albania : 12 Americas:300 1st Qu.:1966 1st Qu.:48.20
## Algeria : 12 Asia :396 Median :1980 Median :60.71
## Angola : 12 Europe :360 Mean :1980 Mean :59.47
## Argentina : 12 Oceania : 24 3rd Qu.:1993 3rd Qu.:70.85
## Australia : 12 Max. :2007 Max. :82.60
## (Other) :1632
## pop gdpPercap
## Min. :6.001e+04 Min. : 241.2
## 1st Qu.:2.794e+06 1st Qu.: 1202.1
## Median :7.024e+06 Median : 3531.8
## Mean :2.960e+07 Mean : 7215.3
## 3rd Qu.:1.959e+07 3rd Qu.: 9325.5
## Max. :1.319e+09 Max. :113523.1
##
# Respostas aqui
#1
americas <- bd_demog %>%
filter(continent == 'Americas')
#2
summary(americas)
## country continent year lifeExp
## Argentina: 12 Africa : 0 Min. :1952 Min. :37.58
## Bolivia : 12 Americas:300 1st Qu.:1966 1st Qu.:58.41
## Brazil : 12 Asia : 0 Median :1980 Median :67.05
## Canada : 12 Europe : 0 Mean :1980 Mean :64.66
## Chile : 12 Oceania : 0 3rd Qu.:1993 3rd Qu.:71.70
## Colombia : 12 Max. :2007 Max. :80.65
## (Other) :228
## pop gdpPercap
## Min. : 662850 Min. : 1202
## 1st Qu.: 2962359 1st Qu.: 3428
## Median : 6227510 Median : 5466
## Mean : 24504795 Mean : 7136
## 3rd Qu.: 18340309 3rd Qu.: 7830
## Max. :301139947 Max. :42952
##
Qual é a média da expectativa de vida para cada país no período? Quais os três países que possuem a maior expectativa de vida? Quais três tem as menores? Salve o resultado num objeto separado chamado “seucontinente_lifeExp”
Dicas:
# Respostas aqui
americas_lifeExp <- americas %>%
group_by(country) %>%
summarise(media_lifeExp = mean(lifeExp)) %>%
arrange(desc(media_lifeExp))
americas_lifeExp
Crie uma nova coluna no banco seucontinente_lifeExp com um identificador de países que estão acima ou abaixo da média da coluna media_lifeExp.
Dicas:
#1
mean(americas_lifeExp$media_lifeExp)
## [1] 64.65874
#2
americas_lifeExp <- americas_lifeExp %>%
mutate(classificacao_lifeExp =
case_when(media_lifeExp < mean(media_lifeExp) ~ 'Abaixo da média',
media_lifeExp > mean(media_lifeExp) ~ 'Acima da média'))
americas_lifeExp
Utilize o vetor que contém as médias de expectativa de vida por país e crie um gráfico de barras.
Dicas:
americas_lifeExp %>%
ggplot(mapping = aes(x = fct_reorder(country, media_lifeExp),
y = media_lifeExp)) +
geom_col() +
coord_flip()
#Estética
americas_lifeExp %>%
ggplot(mapping = aes(x = fct_reorder(country, media_lifeExp),
y = media_lifeExp)) +
geom_col(fill = 'darkcyan') +
coord_flip() +
scale_y_continuous(limits = c(0,80)) +
labs(title = 'Média da expectativa de vida para os países das Américas
no período de 1952 a 2007',
y = 'Média da expectativa de vida',
x = 'Países',
caption = 'MQuinho de inverno - Meios Jr.') +
theme_bw() +
theme(plot.title = element_text(face = "bold",
margin = margin(10, 0, 5, 0),
size = 13),
axis.title.x = element_text(margin = margin(t = 10),
size = 12,
face = 'italic'),
axis.title.y = element_text(margin = margin(r = 10),
size = 12,
face = 'italic'),
plot.caption = element_text(size = 10))
Utilize o vetor do seu continente para criar um histograma de todas as expectativas de vida neste continente.
Dicas:
americas %>%
ggplot(mapping = aes(x = lifeExp)) +
geom_histogram()
# Estética
americas %>%
ggplot(mapping = aes(x = lifeExp)) +
geom_histogram(colour = 'grey2') +
labs(title = 'Distribuição da expectativa de vida países das Américas no
período de 1952 a 2007',
y = 'Contagem',
x = 'Expectativa de vida',
caption = 'MQuinho de inverno - Meios Jr.') +
theme_bw() +
theme(plot.title = element_text(face = "bold",
margin = margin(10, 0, 5, 0),
size = 13),
axis.title.x = element_text(margin = margin(t = 10),
size = 11,
face = 'italic'),
axis.title.y = element_text(margin = margin(r = 10),
size = 11,
face = 'italic'),
plot.caption = element_text(size = 10))
Escolha três países para comparar a variável de PIB per capita (gdpPercap) e crie um boxplot que contenha no eixo X os países, no eixo Y a variável gdpPercap e que as cores das caixinhas (fill) sejam pintadas de acordo com o país.
Dicas:
americas %>%
filter(country %in% c('Brazil', 'United States', 'Canada')) %>%
ggplot(mapping = aes(x = country,
y = gdpPercap,
fill = country)) +
geom_boxplot()
# Estética
americas %>%
filter(country == c('Brazil', 'United States', 'Canada')) %>%
ggplot(mapping = aes(x = country,
y = gdpPercap,
fill = country)) +
geom_boxplot() +
theme_bw() +
scale_fill_brewer(palette = 'Dark2') +
labs(title = 'PIB per capita, em US$, para três países das américas para os anos
de 1952 a 2007',
y = 'PIB per capita',
x = '',
fill = 'Países',
caption = "MQuinho de inverno - Meios Jr.") +
theme(plot.title = element_text(face = "bold",
margin = margin(10, 0, 10, 0),
size = 12),
axis.title.x = element_text(margin = margin(t = 5),
size = 12,
face = 'italic'),
axis.title.y = element_text(margin = margin(r = 10),
size = 12,
face = 'italic'),
plot.caption = element_text(size = 11))
Crie um gráfico de dispersão entre as variáveis de PIB per capita e expectativa de vida. As variáveis estão correlacionadas? Adicione uma linha de suavização para identificar o formato da distribuição.
Dicas:
americas %>%
ggplot(mapping = aes(x = lifeExp,
y = gdpPercap)) +
geom_point() +
geom_smooth(method = 'lm')
# Estética
americas %>%
ggplot(mapping = aes(x = lifeExp,
y = gdpPercap)) +
geom_point() +
geom_smooth(method = 'lm') +
theme_bw() +
scale_fill_brewer(palette = 'Dark2') +
labs(title = 'Expectativa de vida e PIB per capita dos países das Américas
no período de 1952 a 2007',
y = 'PIB per capita',
x = 'Expectativa de vida',
caption = "MQuinho de inverno - Meios Jr.") +
theme(plot.title = element_text(face = "bold",
margin = margin(10, 0, 10, 0),
size = 12),
axis.title.x = element_text(margin = margin(t = 5),
size = 12,
face = 'italic'),
axis.title.y = element_text(margin = margin(r = 10),
size = 12,
face = 'italic'),
plot.caption = element_text(size = 11))
Selecione quatro países do seu continente e faça um gráfico de linhas demostrando a progressão das expectativas de vida de cada país ao longo do período de 1952 a 2007. Além disso, defina que as cores das linhas serão correspondentes aos países.
Dicas:
americas %>%
mutate(year = as.factor(year)) %>%
filter(country %in% c('Brazil','Canada', 'United States', 'Venezuela')) %>%
ggplot(mapping = aes(x = year,
y = lifeExp,
colour = country,
group = country)) +
geom_line()
#Estética
americas %>%
mutate(year = as.factor(year)) %>%
filter(country %in% c('Brazil','Canada', 'United States', 'Venezuela')) %>%
ggplot(mapping = aes(x = year,
y = lifeExp,
colour = country,
group = country)) +
geom_line() +
geom_point() +
theme_bw() +
scale_colour_brewer(palette = 'Dark2') +
labs(title = 'Expectativa de vida para quatro países das Américas
no período de 1952 a 2007',
y = 'Expectativa de vida',
x = 'Anos',
caption = "MQuinho de inverno - Meios Jr.",
colour = 'País') +
theme(plot.title = element_text(face = "bold",
margin = margin(10, 0, 10, 0),
size = 12),
axis.title.x = element_text(margin = margin(t = 5),
size = 12,
face = 'italic'),
axis.title.y = element_text(margin = margin(r = 10),
size = 12,
face = 'italic'),
plot.caption = element_text(size = 11))