You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

lab03-tabulaire_correction.Rmd 2.9KB

преди 4 години
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. ---
  2. title: "Données tabulaires"
  3. author: "Maxime Wack"
  4. date: "17/11/2020"
  5. output:
  6. xaringan::moon_reader:
  7. css: ['default','css/my_style.css']
  8. lib_dir: libs
  9. seal: false
  10. nature:
  11. ratio: '4:3'
  12. countIncrementalSlides: false
  13. self-contained: true
  14. beforeInit: "addons/macros.js"
  15. highlightLines: true
  16. ---
  17. ```{r setup, include=FALSE}
  18. knitr::opts_chunk$set(echo = TRUE, fig.asp= .5)
  19. library(tidyverse)
  20. library(DT)
  21. library(knitr)
  22. options(DT.options = list(paging = F,
  23. info = F,
  24. searching = F))
  25. datatable <- partial(datatable, rownames = F)
  26. ```
  27. class: center, middle, title
  28. # UE Visualisation
  29. ### 2020-2021
  30. ## Dr. Maxime Wack
  31. ### AHU Informatique médicale
  32. #### Hôpital Européen Georges Pompidou, </br> Université de Paris
  33. ---
  34. # Données tabulaires
  35. .center[Chargement des données avec `read_csv`]
  36. ```{r data, message = F}
  37. read_csv("/home/ressources/dataviz/cours03/lab03-data/notes.csv") -> notes
  38. ```
  39. ```{r data datatable, echo = F}
  40. datatable(notes)
  41. ```
  42. ---
  43. # Pivot
  44. .center[Données *wide* → *long*]
  45. ```{r pivot_longer}
  46. pivot_longer(notes,
  47. Alice:David,
  48. names_to = "Prénom",
  49. values_to = "Note") -> notes_long
  50. ```
  51. ```{r pivot_longer_do, echo = F}
  52. datatable(notes_long)
  53. ```
  54. ```{r plot longer}
  55. notes_long %>%
  56. mutate(Date = as.Date(Date, format = "%m/%d/%Y")) %>%
  57. ggplot() +
  58. aes(x = Date, y = Note, color = Prénom) +
  59. geom_line(aes(group = Prénom))
  60. ```
  61. ---
  62. # Pivot
  63. .center[Données *long* → *wide*]
  64. ```{r pivot_wider, eval = F}
  65. pivot_wider(notes_long,
  66. names_from = Prénom,
  67. values_from = Note)
  68. ```
  69. ```{r pivot_wider do, echo = F}
  70. pivot_wider(notes_long,
  71. names_from = Prénom,
  72. values_from = Note) %>%
  73. datatable
  74. ```
  75. ---
  76. # Exercices
  77. Utiliser les fonctions de `pivot_*` pour exprimer le dataset `gapminder` de différentes manières.
  78. ### Représenter l'intégralité sous forme clé-valeur
  79. Chaque ligne ne doit porter qu'une valeur de `lifeExp`, `gdpPercap` ou `pop`, pour chaque pays et chaque année.
  80. ```{r gapminder longer}
  81. # pop, lifeExp et gdpPercap sont pivotées en long vers "Variable" (contenant "pop", "gdpPercap" ou "lifeExp"), et leurs valeurs vers "Valeur"
  82. gapminder %>%
  83. pivot_longer(c(pop, lifeExp, gdpPercap),
  84. names_to = "Variable",
  85. values_to = "Valeur")
  86. ```
  87. ### Représenter un pays par ligne
  88. Une seule ligne par pays, toutes les années × indicateur doivent donner lieu à une nouvelle colonne
  89. ```{r gapminder wider}
  90. gapminder %>%
  91. pivot_wider(c(country, continent),
  92. names_from = "year",
  93. values_from = c(pop, lifeExp, gdpPercap)) -> gapwider
  94. ```
  95. ### Reformer gapminder à partir du précédent exercice
  96. ```{r gapwider to original}
  97. gapwider %>%
  98. pivot_longer(c(-country, -continent),
  99. names_to = c(".value", "year"),
  100. names_sep = "_")
  101. ```