Skip to content

Commit

Permalink
Atualizando conteudo Cap5
Browse files Browse the repository at this point in the history
  • Loading branch information
accustodio authored Aug 15, 2024
1 parent 8c34655 commit 47b6f28
Show file tree
Hide file tree
Showing 4 changed files with 192 additions and 0 deletions.
Binary file added encontro_8/clubedolivro_agosto.pdf
Binary file not shown.
107 changes: 107 additions & 0 deletions encontro_8/clubedolivro_agosto.qmd
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
---
title: "Resumo do capítulo - Organização de dados"
subtitle: "Clube do Livro - R Para Ciência de Dados (2ª Edição)"
author: "Angélica Custódio"
date: 2024-08-06
format: revealjs
lang: pt
---

## Preparação: Pacotes

Esse capítulo foca bastante no _tidyr_, que faz parte do grupo de pacotes do _tidyverse_.

```{r echo=TRUE}
#| eval: false
# Instalando "tidyverse"
install.packages("tidyverse")
# Instalando "dados"
remotes::install_github("cienciadedatos/dados")
```

## "Dados bagunçados são bagunçados à sua maneira"

```{r echo=FALSE, out.width="100%", fig.align='center'}
knitr::include_graphics("https://cdn.myportfolio.com/45214904-6a61-4e23-98d6-b140f8654a40/6e297111-efb7-4555-93d2-085071d1853c.jpg?h=6495be6d4c37f1148bd0148bc7458a13")
```
[Ilustração - Allison Horst](https://allisonhorst.com/other-r-fun)

## Dados _tidy_

Existem três regras interrelacionadas que fazem com que um conjunto de dados seja considerado tidy:

- Cada variável é uma coluna; cada coluna é uma variável.

- Cada observação é uma linha; cada linha é uma observação.

- Cada valor é uma célula; cada célula é um único valor.


_dplyr_, _ggplot2_ e os demais pacotes do tidyverse foram pensados para trabalhar com _dados tidy_.

## Dados _tidy_

```{r echo=FALSE, out.width="100%", fig.align='center'}
knitr::include_graphics("https://cienciadedatos.github.io/pt-r4ds/images/tidy-1.png")
```


## Exercícios

Abordando os exercícios [nessa seção](https://cienciadedatos.github.io/pt-r4ds/data-tidy.html#exerc%C3%ADcios).

1) Para cada uma das tabelas do exemplo, descreva o que cada observação e cada coluna representa.

## Exercícios

2) Faça um esboço do processo que você usaria para calcular taxa para a tabela2 e tabela3. Você precisará executar quatro operações:

- Extrair o número de casos de tuberculose por país por ano.
- Extrair a população correspondente por país por ano.
- Dividir os casos pela população e multiplicar por 10000.
- Armazenar de volta no local apropriado.

## _pivot_longer()_


```{r echo=FALSE, out.width="100%", fig.align='center'}
knitr::include_graphics("https://cienciadedatos.github.io/pt-r4ds/diagrams/tidy-data/column-names.png ")
```

## _pivot_wider()_

Utilizá-lo torna o conjunto de dados mais largo (wider), aumentando o número de colunas e diminuindo o número de linhas.

É muito útil quando uma informação está espalhada em múltiplas linhas.

```{r echo=FALSE, out.width="100%", fig.align='center'}
knitr::include_graphics("pivot_wider_ex.png")
```

## Como definir a versão tidy?

Pode ser impossível especificar se a versão longa (long) ou larga (wide) é a versão tidy.

O recomendado é seguir com uma tabela organizada que faça sentido para o uso necessário.

```{r echo=FALSE, out.width="100%", fig.align='center'}
knitr::include_graphics("https://cdn.myportfolio.com/45214904-6a61-4e23-98d6-b140f8654a40/20dce8ef-f4bb-49ce-b084-81d677a0b4fc_rw_1920.jpg?h=b54b00e7e53d92de2fd8674c940321f9")
```
[Ilustração - Allison Horst](https://allisonhorst.com/other-r-fun)


## Seguimos felizes com os dados organizados

```{r echo=FALSE, out.width="100%", fig.align='center'}
knitr::include_graphics("https://cdn.myportfolio.com/45214904-6a61-4e23-98d6-b140f8654a40/40488240-4609-4dc3-8920-693e078b55ce_rw_1920.jpg?h=2e96a7e21e19c43867546498da026649")
```
[Ilustração - Allison Horst](https://allisonhorst.com/other-r-fun)

# Referências

- [Wickham, H. . (2014). Tidy Data. Journal of Statistical Software](https://www.jstatsoft.org/article/view/v059i10)

- [Data tidying with tidyr::Cheatsheet](https://www.google.com/search?q=cheat+sheet+tidyr&oq=cheat+sheet+tidyr&gs_lcrp=EgZjaHJvbWUyBggAEEUYOTIKCAEQABgTGBYYHjIKCAIQABgTGBYYHjIKCAMQABgTGBYYHjIKCAQQABiABBiiBDIKCAUQABiABBiiBNIBCDUzMjBqMGo3qAIAsAIA&sourceid=chrome&ie=UTF-8#:~:text=Data%20tidying%20with,%E2%80%BA%20rstudio%20%E2%80%BA%20main)

- [Illustrations from the Openscapes blog Tidy Data for reproducibility, efficiency, and collaboration - by Julia Lowndes and and Allison Horst](https://allisonhorst.com/other-r-fun)
Binary file added encontro_8/pivot_wider_ex.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
85 changes: 85 additions & 0 deletions encontro_8/script_caporganizacao.R
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
library(tidyverse)
#remotes::install_github("cienciadedatos/dados")
library(dados)

#Em cada tabela1, tabela2 e tabela3, cada observação representa um país.
#Na tabela 1, país é o nome do país, ano é o ano da recolha de dados,
#casos é o número de pessoas com a doença nesse ano e população é o número de
#pessoas em cada país nesse ano.
#Na tabela 2, país e ano são iguais aos da tabela 1, tipo é o tipo de número e
#contagem é o número de observações (casos ou população dependendo do tipo).
#Finalmente, na tabela 3, o país e o ano são novamente os mesmos que na tabela 1,
#e a taxa é a taxa da doença (casos divididos pela população).

# Tabelas
tabela1

tabela2

tabela3

# Calcular a taxa (_rate_) por 10.000
tabela1 |>
mutate(taxa = casos / populacao * 10000)

# Calcular a taxa - tabela 2
tabela2 |>
pivot_wider(
names_from = tipo,
values_from = contagem) |>
rename(populacao=população) |>
mutate(taxa = casos / populacao * 10000)

# Calcular a taxa - tabela 3
tabela3 |>
separate_wider_delim(
cols = taxa,
delim = "/",
names = c("casos", "populacao")) |>
mutate(
casos = as.numeric(casos),
populacao = as.numeric(populacao),
taxa = casos / populacao * 10000)

# Dados top100musicas

top100musicas |> glimpse()

top100musicas|>
pivot_longer(
cols = starts_with("semana"),
names_to = "semana",
values_to = "posicao"
) |>
glimpse()

# melhorando o formato da tabela

top100musicas|>
pivot_longer(
cols = starts_with("semana"),
names_to = "semana",
values_to = "posicao",
values_drop_na = TRUE) |>
mutate(
semana = parse_number(semana))

#5.3.3 Muitas variáveis nos nomes de colunas
# dataset who2
# usando o names_sep

#5.3.4 Dados e nomes de variáveis nos cabeçalhos das colunas

nucleo_familiar |> colnames()

nucleo_familiar |>
pivot_longer(
cols = !familia,
names_to = c(".value", "crianca"),
names_sep = "_",
# values_drop_na = TRUE
)

#5.4 Transformando os dados para o formato largo (Widening data)

cms_paciente_experiencia

0 comments on commit 47b6f28

Please sign in to comment.