|
| 1 | +--- |
| 2 | +title: "Aula 2 " |
| 3 | +subtitle: "Semabio 2024" |
| 4 | +author: "Carolina Musso" |
| 5 | +institute: "IB/UnB" |
| 6 | +title-slide-attributes: |
| 7 | + data-background-image: img/fundo.png |
| 8 | + data-background-size: contain |
| 9 | + font-family: "Lato" |
| 10 | +format: |
| 11 | + revealjs: |
| 12 | + embed-resources: true |
| 13 | + multiplex: true |
| 14 | + incremental: true |
| 15 | + logo: ../img/logo.png |
| 16 | + scrollable: true |
| 17 | + highlight-style: arrow |
| 18 | + theme: ../style.scss |
| 19 | + transition: fade |
| 20 | +knitr: |
| 21 | + opts_chunk: |
| 22 | + echo: true |
| 23 | + warnings: false |
| 24 | +editor: source |
| 25 | +--- |
| 26 | + |
| 27 | +## Sobre o curso |
| 28 | + |
| 29 | +- **Estrutura**: |
| 30 | + |
| 31 | + - Aula 1: Instalação e Intro Rmarkdown |
| 32 | + - **Aula 2 (hoje): Rmarkdown, pacote dplyr** |
| 33 | + - Aula 3: Gráficos ggplot, Tabelas resumo e testes estatísticos |
| 34 | + |
| 35 | +# Quiz |
| 36 | + |
| 37 | +[](https://create.kahoot.it/share/aula-1-semabio2024/8139c701-3ff8-4d1f-8de0-a8dbac5c7ef1) |
| 38 | + |
| 39 | +## Os Quatro Paineis do R-Studio |
| 40 | + |
| 41 | + |
| 42 | + |
| 43 | +## Rmarkdown |
| 44 | + |
| 45 | +- Rmarkdown {width="164"} |
| 46 | + |
| 47 | +- Quarto {width="330" height="92"} |
| 48 | + |
| 49 | +- [YiHui](https://yihui.org/en/) |
| 50 | + |
| 51 | + |
| 52 | +## R de trás-pra-frente |
| 53 | + |
| 54 | +- Fizemos o download de um código pronto. |
| 55 | + |
| 56 | +- Analisamos, rodasmos, sem "entender"! |
| 57 | + |
| 58 | +. . . |
| 59 | + |
| 60 | +## Você conseguiu diferenciar essas partes? |
| 61 | + |
| 62 | +::: columns |
| 63 | +::: {.column width="20%"} |
| 64 | +- Cabeçalho |
| 65 | + |
| 66 | +- Texto |
| 67 | + |
| 68 | +- Código |
| 69 | +::: |
| 70 | + |
| 71 | +::: {.column width="80%"} |
| 72 | +{fig-align="center" width="859"} |
| 73 | +::: |
| 74 | +::: |
| 75 | + |
| 76 | +## Cabeçalho |
| 77 | + |
| 78 | +- Metadados |
| 79 | + |
| 80 | +- Linguagem YAML |
| 81 | + |
| 82 | +- É MUITO sensível (qualquer coisa atrapalha) |
| 83 | + |
| 84 | + {width="455"} |
| 85 | + |
| 86 | +## Texto |
| 87 | + |
| 88 | +- Markdown |
| 89 | + |
| 90 | +  |
| 91 | + |
| 92 | +## Código |
| 93 | + |
| 94 | +- É o coração do R mesmo |
| 95 | + |
| 96 | + - Linguagem de programação |
| 97 | + |
| 98 | + - Como que difere de Excel (apontar e clicar?) |
| 99 | + |
| 100 | +  |
| 101 | + |
| 102 | +## Brincando com o código |
| 103 | + |
| 104 | +{fig-align="center" width="383"} |
| 105 | + |
| 106 | +- Mudar de cor, posição ... |
| 107 | + |
| 108 | +- Prática |
| 109 | + |
| 110 | +## O que são esses chunks afinal? |
| 111 | + |
| 112 | +- O "código" própriamente dito |
| 113 | + |
| 114 | +- As partes dos chunks |
| 115 | + |
| 116 | + - cabeçalho (do chunk) |
| 117 | + - conteúdo |
| 118 | + - código |
| 119 | + - comentários |
| 120 | + |
| 121 | +# Pacotes |
| 122 | + |
| 123 | +## E os pacotes o que são? |
| 124 | + |
| 125 | +- Extensões do R |
| 126 | + |
| 127 | +- Teremos uma aula só sobre o uso de pacotes |
| 128 | + |
| 129 | + - [CRAN](https://cran.r-project.org) |
| 130 | + |
| 131 | + - Vamos usar muito o [tidyverse](https://r4ds.had.co.nz) |
| 132 | + |
| 133 | +- [EpiR-Handbook](https://epirhandbook.com/en/suggested-packages-1.html) |
| 134 | + |
| 135 | +- [Instalação de pacotes, Curso-R](https://livro.curso-r.com/4-pacotes.html) |
| 136 | + |
| 137 | +- [Tidyverse, R4DS](https://r4ds.had.co.nz/introduction.html?q=pac#other-packages) |
| 138 | + |
| 139 | +## Instalar e Carregar |
| 140 | + |
| 141 | +- Para utilizar um pacote é preciso **instalá-lo** (uma única vez) e depois **carregá-lo** (sempre que for usar) |
| 142 | + |
| 143 | +. . . |
| 144 | + |
| 145 | +### Jeito clássico |
| 146 | + |
| 147 | +```{r eval=F, echo=T} |
| 148 | +# para instalar |
| 149 | +install.packages("tidyverse") # precisa estar entre aspas |
| 150 | +
|
| 151 | +# para carregar |
| 152 | +library(tidyverse) #pode estar entre aspas ou não |
| 153 | +``` |
| 154 | + |
| 155 | +## Pacote Pacman |
| 156 | + |
| 157 | +- Mas nós vamos fazer de outro jeito! |
| 158 | + |
| 159 | +- Vamos usar um pacote que gerencia pacotes (eu disse que tinha pacotes para tudo!) |
| 160 | + |
| 161 | +. . . |
| 162 | + |
| 163 | +```{r} |
| 164 | +if (!require("pacman")) install.packages("pacman") |
| 165 | +pacman::p_load("tidyverse") |
| 166 | +``` |
| 167 | + |
| 168 | +- Verifica a instalação e carrega! : Garantir reprodutibilidade e automatização. |
| 169 | + |
| 170 | +- O pacote é o pacman, a função que faz isso é o p_load. |
| 171 | + |
| 172 | +## O que são funções |
| 173 | + |
| 174 | +- O pacote é um conjunto de funções... mas o que são funções? |
| 175 | + |
| 176 | +- "Funções em programação é um conjunto de instruções para simplificar uma tarefa repetitiva" |
| 177 | + |
| 178 | +- precisam de **argumentos**. |
| 179 | + |
| 180 | +. . . |
| 181 | + |
| 182 | +```{r, echo=T} |
| 183 | +sqrt(9) |
| 184 | +round(3.89, digits = 0 ) |
| 185 | +round(3.89, 0 ) |
| 186 | +``` |
| 187 | + |
| 188 | +## O pacote tidyverse |
| 189 | + |
| 190 | +{fig-align="center" width="600"} |
| 191 | + |
| 192 | +## RBase |
| 193 | + |
| 194 | +```{r echo=T} |
| 195 | +head(cars[cars$speed>7,],3) |
| 196 | +``` |
| 197 | + |
| 198 | +### Com o tidyverse |
| 199 | + |
| 200 | +```{r echo=T} |
| 201 | +cars %>% #isso chama pipe |
| 202 | + filter(speed>7) %>% |
| 203 | + head(3) |
| 204 | +``` |
| 205 | + |
| 206 | +# Erros comuns |
| 207 | + |
| 208 | +- [Erros comuns](https://epirhandbook.com/en/common-errors.html?q=error#common-errors) |
| 209 | + |
| 210 | +- [Pedindo Ajuda](https://livro.curso-r.com/3-1-pedindo-ajuda.html) |
| 211 | + |
| 212 | +- [Geting Help](https://epirhandbook.com/en/getting-help.html?q=help#getting-help) |
| 213 | + |
| 214 | +- [Palestra Latin-R: Conquistando Errores en R](https://www.youtube.com/watch?v=CAw3-pZhzfk), [material](https://paocorrales.github.io/errores_tutorial/) |
| 215 | + |
| 216 | + |
| 217 | +# Parte 2: Pacote dplyr |
| 218 | + |
| 219 | +## Leituras para aprofundamento |
| 220 | + |
| 221 | +- [EpiHandbook, 8.Cleaning data and core functions](https://epirhandbook.com/en/cleaning-data-and-core-functions.html) |
| 222 | + |
| 223 | +- [Curso-R, 7. Manipulação](https://livro.curso-r.com/7-manipulacao.html) |
| 224 | + |
| 225 | +- [DataCamp, Introduction to the Tidyverse](https://app.datacamp.com/learn/courses/introduction-to-the-tidyverse) |
| 226 | + |
| 227 | +- [R4DS, 5. Data transformation](https://r4ds.had.co.nz/transform.html) |
| 228 | + |
| 229 | +## Pacote do tidyverse |
| 230 | + |
| 231 | +- Vamos dar preferência para funções desse pacote |
| 232 | + |
| 233 | + - do pacote dplyr que faz parte do tidyverse |
| 234 | + |
| 235 | + {width="171"} |
| 236 | + |
| 237 | +## select() |
| 238 | + |
| 239 | +- Trabalhando com as colunas |
| 240 | + |
| 241 | +- As vezes queremos selecionar apenas algumas colunas (pode ser pesado e confuso manter todas as colunas sempre) |
| 242 | + |
| 243 | +. . . |
| 244 | + |
| 245 | +<center><img src="../img/select2.png" height="300px""/></center> |
| 246 | + |
| 247 | +. . . |
| 248 | + |
| 249 | +```{r echo=F} |
| 250 | +pacman::p_load(tidyverse, rio) |
| 251 | +
|
| 252 | +# importando a base |
| 253 | +head(iris) |
| 254 | +``` |
| 255 | + |
| 256 | +## Função select() |
| 257 | + |
| 258 | +- Vimos que as funções são intruções: muitas vezes tem cara de verbo |
| 259 | + |
| 260 | +- a função select precisa de 2 argumentos: a base de dados e as colunas que você quer selecionar |
| 261 | + |
| 262 | +. . . |
| 263 | + |
| 264 | +```{r} |
| 265 | +# dplyr |
| 266 | +
|
| 267 | +select(iris, Sepal.Length, Sepal.Width) %>% |
| 268 | + head(5) |
| 269 | +
|
| 270 | +# dplyr |
| 271 | +select(iris, starts_with("Sepal")) %>% |
| 272 | + head(5) |
| 273 | +``` |
| 274 | + |
| 275 | +. . . |
| 276 | + |
| 277 | +```{r} |
| 278 | +# R base |
| 279 | +
|
| 280 | +iris[,c("Sepal.Length", "Sepal.Width")][1:6,] |
| 281 | +``` |
| 282 | + |
| 283 | +## Função filter() |
| 284 | + |
| 285 | +- Trabalhando com as linhas |
| 286 | + |
| 287 | +- As vezes queremos selecionar apenas algumas linhas: algum grupo específico. |
| 288 | + |
| 289 | +- Raciocínio parecido com a função select(): precisa de 2 argumentos: a base de dados e a *condição sobre alguma coluna* para fazer o filtro. |
| 290 | + |
| 291 | +. . . |
| 292 | + |
| 293 | +```{r} |
| 294 | +# dplyr |
| 295 | +iris %>% # outra forma de fazer |
| 296 | + filter(Species == "setosa") %>% |
| 297 | + select(starts_with("Petal"), Species) %>% |
| 298 | + head(5) |
| 299 | +``` |
| 300 | + |
| 301 | +. . . |
| 302 | + |
| 303 | +```{r} |
| 304 | +#R base |
| 305 | +iris[iris$Species=="setosa", ] |
| 306 | +``` |
| 307 | + |
| 308 | +## mutate() |
| 309 | + |
| 310 | +- criar nosvas variáveis |
| 311 | + |
| 312 | +. . . |
| 313 | + |
| 314 | +```{r} |
| 315 | +# dplyr |
| 316 | +
|
| 317 | +iris %>% |
| 318 | + mutate(area = Petal.Length*Petal.Width/2) %>% |
| 319 | + select(area) %>% |
| 320 | + head(5) |
| 321 | +``` |
| 322 | + |
| 323 | +. . . |
| 324 | + |
| 325 | +```{r} |
| 326 | +# R base |
| 327 | +iris$area <- iris$Petal.Length*iris$Petal.Width/2 |
| 328 | +``` |
| 329 | + |
| 330 | +# group_by() |
| 331 | + |
| 332 | +- sempre agrupar e fazer alguma conta! |
| 333 | + |
| 334 | +. . . |
| 335 | + |
| 336 | +```{r} |
| 337 | +# dplyr |
| 338 | +iris %>% |
| 339 | + mutate(area = Petal.Length*Petal.Width/2) %>% |
| 340 | + group_by(Species) %>% |
| 341 | + summarise(media=mean(area)) |
| 342 | +``` |
| 343 | + |
| 344 | +. . . |
| 345 | + |
| 346 | + |
| 347 | +<center>{width="600"}</center> |
| 348 | + |
| 349 | +# Obrigada |
0 commit comments