Author

Aline Fonseca

Published

October 12, 2024

Atividade de manipulação dos dados - Tidyrverse

Code
library(tidyverse) 
library(knitr)
library(kableExtra)
library(tidyverse)
library(tinytex)

egg <- readr::read_csv('https://raw.githubusercontent.com/rfordatascience/tidytuesday/master/data/2023/2023-04-11/egg-production.csv') 

Exercício 1 - removendo colunas de um conjunto de dados

Code
egg1 <- select(egg, - source) 
kable1 <- kable(head(egg1))
kable_styling(kable1, full_width = F, bootstrap_options = c("striped","hover","condensed")) %>% 
   row_spec(1:6, background = "#DC143C")
Tabela 1. Remover a última coluna do dataset (a coluna chamada source).
observed_month prod_type prod_process n_hens n_eggs
2016-07-31 hatching eggs all 57975000 1147000000
2016-08-31 hatching eggs all 57595000 1142700000
2016-09-30 hatching eggs all 57161000 1093300000
2016-10-31 hatching eggs all 56857000 1126700000
2016-11-30 hatching eggs all 57116000 1096600000
2016-12-31 hatching eggs all 57750000 1132900000

Exercício 2 - selecionando variáveis numéricas de um conjunto de dados.

Code
number <- select_if(egg, is.numeric) 
kable2 <- kable(head(number))
kable_styling(kable2, full_width = F, bootstrap_options = c("striped","hover","condensed")) %>% 
  row_spec(1:6, background = "#FF8C00")
Tabela 2. Selecionar apenas as variáveis numéricas.
n_hens n_eggs
57975000 1147000000
57595000 1142700000
57161000 1093300000
56857000 1126700000
57116000 1096600000
57750000 1132900000

Exercício 3 - criando subconjuntos a partir de um conjunto de dados.

Code
hatching_tab <- filter(egg, prod_type == "hatching eggs") #apenas hatching 
tab_eggs <- filter(egg, prod_type == "table eggs") #apenas table eggs
kable3 <- kable(head(hatching_tab), caption = "Tabela 3.1. Hatching Eggs")
kable4 <- kable(head(tab_eggs), caption = "Tabela 3.2. Table Eggs")
kable_styling(kable3, full_width = F, bootstrap_options = c("striped","hover","condensed")) %>% 
  row_spec(1:6, background = "#1E90FF")
Tabela 3.1. Hatching Eggs
observed_month prod_type prod_process n_hens n_eggs source
2016-07-31 hatching eggs all 57975000 1147000000 ChicEggs-09-23-2016.pdf
2016-08-31 hatching eggs all 57595000 1142700000 ChicEggs-10-21-2016.pdf
2016-09-30 hatching eggs all 57161000 1093300000 ChicEggs-11-22-2016.pdf
2016-10-31 hatching eggs all 56857000 1126700000 ChicEggs-12-23-2016.pdf
2016-11-30 hatching eggs all 57116000 1096600000 ChicEggs-01-24-2017.pdf
2016-12-31 hatching eggs all 57750000 1132900000 ChicEggs-02-28-2017.pdf
Code
kable_styling(kable4, full_width = F, bootstrap_options = c("striped","hover","condensed")) %>% 
  row_spec(1:6, background = "#3CB371")
Tabela 3.2. Table Eggs
observed_month prod_type prod_process n_hens n_eggs source
2016-07-31 table eggs all 299669000 7350500000 ChicEggs-09-23-2016.pdf
2016-08-31 table eggs all 300917000 7409000000 ChicEggs-10-21-2016.pdf
2016-09-30 table eggs all 303270000 7204200000 ChicEggs-11-22-2016.pdf
2016-10-31 table eggs all 305852000 7534700000 ChicEggs-12-23-2016.pdf
2016-11-30 table eggs all 310728000 7468500000 ChicEggs-01-24-2017.pdf
2016-12-31 table eggs all 318820000 7950400000 ChicEggs-02-28-2017.pdf

Tabela 3. Criar um dataset só com hatching e outro dataset apenas com table eggs.

Exercício 4 - criando subconjuntos a partir de fatores específicos dentro do conjunto de dados.

Code
selection <- filter(egg, prod_type == "table eggs"& prod_process == "all")
kable5 <- kable(head(selection))
kable_styling(kable5, full_width = F, bootstrap_options = c("striped","hover","condensed")) %>% 
  row_spec(1:6, background = "#FF6347")
Tabela 4. Criar um dataset só com table eggs e todos os processos (all).
observed_month prod_type prod_process n_hens n_eggs source
2016-07-31 table eggs all 299669000 7350500000 ChicEggs-09-23-2016.pdf
2016-08-31 table eggs all 300917000 7409000000 ChicEggs-10-21-2016.pdf
2016-09-30 table eggs all 303270000 7204200000 ChicEggs-11-22-2016.pdf
2016-10-31 table eggs all 305852000 7534700000 ChicEggs-12-23-2016.pdf
2016-11-30 table eggs all 310728000 7468500000 ChicEggs-01-24-2017.pdf
2016-12-31 table eggs all 318820000 7950400000 ChicEggs-02-28-2017.pdf

Exercício 5 - mudando nome das variáveis.

Code
nomes_br <- rename(egg, `Mês observado` = observed_month, `Tipo de produção` = prod_type, `Processo de produção` = prod_process, `Número de galinhas` = n_hens, `Número de ovos`= n_eggs, Fonte = source)
kable6 <- kable(head(nomes_br))
kable_styling(kable6, full_width = F, bootstrap_options = c("striped","hover","condensed")) %>% 
  row_spec(1:6, background = "#FFD700")
Tabela 5. Mudar os nomes das variáveis para português.
Mês observado Tipo de produção Processo de produção Número de galinhas Número de ovos Fonte
2016-07-31 hatching eggs all 57975000 1147000000 ChicEggs-09-23-2016.pdf
2016-08-31 hatching eggs all 57595000 1142700000 ChicEggs-10-21-2016.pdf
2016-09-30 hatching eggs all 57161000 1093300000 ChicEggs-11-22-2016.pdf
2016-10-31 hatching eggs all 56857000 1126700000 ChicEggs-12-23-2016.pdf
2016-11-30 hatching eggs all 57116000 1096600000 ChicEggs-01-24-2017.pdf
2016-12-31 hatching eggs all 57750000 1132900000 ChicEggs-02-28-2017.pdf

Exercício 6 - mudando nomes de fatores dentro de variáveis específicas.

Code
new_factors <- mutate(nomes_br, `Tipo de produção` = recode(`Tipo de produção`, `hatching eggs` = "ovos de incubação", `table eggs` = "ovos de consumo"), `Processo de produção` = recode(`Processo de produção`, all = "todos os processos", `cage-free (non-organic)` = "livre de gaiolas: não orgânico", `cage-free (organic)` = "livre de gaiolas: orgânico"))
kable7 <- kable(head(new_factors))
kable_styling(kable7, full_width = F, bootstrap_options = c("striped","hover","condensed")) %>% 
  row_spec(1:6, background = "#8B008B")
Tabela 6. Mudar os nomes dos fatores para português.
Mês observado Tipo de produção Processo de produção Número de galinhas Número de ovos Fonte
2016-07-31 ovos de incubação todos os processos 57975000 1147000000 ChicEggs-09-23-2016.pdf
2016-08-31 ovos de incubação todos os processos 57595000 1142700000 ChicEggs-10-21-2016.pdf
2016-09-30 ovos de incubação todos os processos 57161000 1093300000 ChicEggs-11-22-2016.pdf
2016-10-31 ovos de incubação todos os processos 56857000 1126700000 ChicEggs-12-23-2016.pdf
2016-11-30 ovos de incubação todos os processos 57116000 1096600000 ChicEggs-01-24-2017.pdf
2016-12-31 ovos de incubação todos os processos 57750000 1132900000 ChicEggs-02-28-2017.pdf

Exercício 7 - criando nova variável a partir da combinação de variáveis pré-existentes.

Code
new.variable <- mutate(new_factors, Produtividade = (`Número de ovos`/`Número de galinhas`)) #feito com a tabela traduzida.
kable8 <- kable(head(new.variable))
kable_styling(kable8, full_width = F, bootstrap_options = c("striped","hover","condensed")) %>% 
  row_spec(1:6, background = "#FF1493")
Tabela 7. Criar uma nova variável chamada ‘produtividade’ com a razão entre número de ovos (n_eggs) e número de galinhas (n_hens).
Mês observado Tipo de produção Processo de produção Número de galinhas Número de ovos Fonte Produtividade
2016-07-31 ovos de incubação todos os processos 57975000 1147000000 ChicEggs-09-23-2016.pdf 19.78439
2016-08-31 ovos de incubação todos os processos 57595000 1142700000 ChicEggs-10-21-2016.pdf 19.84026
2016-09-30 ovos de incubação todos os processos 57161000 1093300000 ChicEggs-11-22-2016.pdf 19.12668
2016-10-31 ovos de incubação todos os processos 56857000 1126700000 ChicEggs-12-23-2016.pdf 19.81638
2016-11-30 ovos de incubação todos os processos 57116000 1096600000 ChicEggs-01-24-2017.pdf 19.19952
2016-12-31 ovos de incubação todos os processos 57750000 1132900000 ChicEggs-02-28-2017.pdf 19.61732

Exercício 8 - criando subconjunto de dados a partir de uma seleção específica das variáveis.

Code
sep <- egg1 %>% filter(prod_process !="all") %>% separate(prod_process, into = c("process", "type"), sep= " ") %>% pivot_wider(names_from = type, values_from = c(n_hens, n_eggs)) #inglês
kable9 <- kable(head(sep), caption = "Tabela 8.1. Cage-free/ Eggs and hens / Organic and non-organic")
kable_styling(kable9, full_width = F, bootstrap_options = c("striped","hover","condensed")) %>% 
  row_spec(1:6, background = "#4169E1")
Tabela 8.1. Cage-free/ Eggs and hens / Organic and non-organic
observed_month prod_type process n_hens_(non-organic) n_hens_(organic) n_eggs_(non-organic) n_eggs_(organic)
2016-08-31 table eggs cage-free 17000000 13500000 397884291 315968297
2016-09-30 table eggs cage-free 17000000 13500000 383774914 304762114
2016-10-31 table eggs cage-free 23500000 14100000 546374469 327825000
2016-11-30 table eggs cage-free 23500000 14100000 530864743 318519771
2016-12-31 table eggs cage-free 23500000 14100000 542733120 325639234
2017-01-31 table eggs cage-free 23500000 14100000 550017411 330010766
Code
sep2 <- new_factors %>% 
  select(- Fonte) %>% 
  filter(`Processo de produção`%in% c("livre de gaiolas: não orgânico", "livre de gaiolas: orgânico")) %>% 
  separate(`Processo de produção`, into = c("processo", "tipo"), sep=": ") %>% 
  pivot_wider(names_from = tipo, values_from = c(`Número de galinhas`, `Número de ovos`)) #português

kable10 <- kable(head(sep2), caption = "Tabela 8.2. Livre de gaiolas/ Ovos e galinhas/ Orgânico e não-orgânico")
kable_styling(kable10, full_width = F, bootstrap_options = c("striped","hover","condensed")) %>% 
  row_spec(1:6, background = "#FFE4E1")
Tabela 8.2. Livre de gaiolas/ Ovos e galinhas/ Orgânico e não-orgânico
Mês observado Tipo de produção processo Número de galinhas_não orgânico Número de galinhas_orgânico Número de ovos_não orgânico Número de ovos_orgânico
2016-08-31 ovos de consumo livre de gaiolas 17000000 13500000 397884291 315968297
2016-09-30 ovos de consumo livre de gaiolas 17000000 13500000 383774914 304762114
2016-10-31 ovos de consumo livre de gaiolas 23500000 14100000 546374469 327825000
2016-11-30 ovos de consumo livre de gaiolas 23500000 14100000 530864743 318519771
2016-12-31 ovos de consumo livre de gaiolas 23500000 14100000 542733120 325639234
2017-01-31 ovos de consumo livre de gaiolas 23500000 14100000 550017411 330010766

Tabela 8. Criar um dataset só de produtos cage free e criar novas variáveis separando n_eggs e n_hens por orgânicos e não orgânicos.

Exercício 9 - combinando duas variáveis numéricas em uma única coluna.

Code
categ <- egg %>% pivot_longer(4:5, names_to = "Eggs and hens", values_to = "egg/hens")
kable11 <- kable(head(categ))
kable_styling(kable11, full_width = F, bootstrap_options = c("striped","hover","condensed")) %>% 
  row_spec(1:6, background = "#B22222")
Tabela 9. Criar uma variável categórica com os fatores n_eggs e n_hens, combinando seus valores em uma única coluna.
observed_month prod_type prod_process source Eggs and hens egg/hens
2016-07-31 hatching eggs all ChicEggs-09-23-2016.pdf n_hens 57975000
2016-07-31 hatching eggs all ChicEggs-09-23-2016.pdf n_eggs 1147000000
2016-08-31 hatching eggs all ChicEggs-10-21-2016.pdf n_hens 57595000
2016-08-31 hatching eggs all ChicEggs-10-21-2016.pdf n_eggs 1142700000
2016-09-30 hatching eggs all ChicEggs-11-22-2016.pdf n_hens 57161000
2016-09-30 hatching eggs all ChicEggs-11-22-2016.pdf n_eggs 1093300000

Exercício 10 - sumarizando dados (média, desvio, etc) de acordo com fatores específicos de cada variável.

Code
sum <- egg %>% separate(observed_month, into = c("year", "month", "day"), sep = "-") %>% select(-month, -day, -source) %>% group_by(year, prod_type,prod_process) %>% summarise_all(mean)
kable12 <- kable(head(sum), caption = "Tabela 10.1. Sumário")
kable_styling(kable12, full_width = F, bootstrap_options = c("striped","hover","condensed")) %>% 
  row_spec(1:6, background = "#1E90FF")
Tabela 10.1. Sumário
year prod_type prod_process n_hens n_eggs
2016 hatching eggs all 57409000 1123200000
2016 table eggs all 306542667 7486216667
2016 table eggs cage-free (non-organic) 20900000 480326307
2016 table eggs cage-free (organic) 13860000 318542883
2017 hatching eggs all 59521833 1123725000
2017 table eggs all 314964500 7637800000
Code
sum2 <- egg %>% separate(observed_month, into = c("year", "month", "day"), sep = "-") %>% group_by(year, prod_type, prod_process) %>% summarise(Média_ovos = mean(n_eggs), Média_galinha = mean(n_hens)) #anotherway
kable13 <- kable(head(sum2), caption = "Tabela 10.2. Sumário")
kable_styling(kable13, full_width = F, bootstrap_options = c("striped","hover","condensed")) %>% 
  row_spec(1:6, background = "#3CB371")
Tabela 10.2. Sumário
year prod_type prod_process Média_ovos Média_galinha
2016 hatching eggs all 1123200000 57409000
2016 table eggs all 7486216667 306542667
2016 table eggs cage-free (non-organic) 480326307 20900000
2016 table eggs cage-free (organic) 318542883 13860000
2017 hatching eggs all 1123725000 59521833
2017 table eggs all 7637800000 314964500

Tabela 10. Faça um sumário dos dados com as médias de n_hens e n_eggs por ano, por produto e por processo.

Obrigada minha friend Amandja pela ajuda!

Amandja e eu

FIM