diff --git a/encontro_8/clubedolivro_agosto.pdf b/encontro_8/clubedolivro_agosto.pdf new file mode 100644 index 0000000..4dc4067 Binary files /dev/null and b/encontro_8/clubedolivro_agosto.pdf differ diff --git a/encontro_8/clubedolivro_agosto.qmd b/encontro_8/clubedolivro_agosto.qmd new file mode 100644 index 0000000..8e023f7 --- /dev/null +++ b/encontro_8/clubedolivro_agosto.qmd @@ -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) diff --git a/encontro_8/pivot_wider_ex.png b/encontro_8/pivot_wider_ex.png new file mode 100644 index 0000000..af2d9ab Binary files /dev/null and b/encontro_8/pivot_wider_ex.png differ diff --git a/encontro_8/script_caporganizacao.R b/encontro_8/script_caporganizacao.R new file mode 100644 index 0000000..5ba1c95 --- /dev/null +++ b/encontro_8/script_caporganizacao.R @@ -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