Ce diaporama a bien été signalé.
Le téléchargement de votre SlideShare est en cours. ×

TidyR Introduction.pdf

Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Prochain SlideShare
longitudinal.pdf
longitudinal.pdf
Chargement dans…3
×

Consultez-les par la suite

1 sur 24 Publicité

Plus De Contenu Connexe

Plus récents (20)

Publicité

TidyR Introduction.pdf

  1. 1. Introduction à Tidyr
  2. 2. Traduction libre d'un tutoriel de Garrick Aden-Buie : https://github.com/gadenbuie/tidy- animated-verbs/
  3. 3. Liste des verbes Tidy Mutating Joins — inner_join(), left_join(), right_join(), full_join() Filtering Joins — semi_join(), anti_join() Set Operations — union(), union_all(), intersect(), setdiff() Tidy Data — spread() and gather()
  4. 4. Mutating Joins Une jointure mutante permet de combiner les variables de deux tableaux. On fait d'abord correspondre les observations par leurs clés, puis on copie les variables d'un tableau à l'autre: plusieurs façons de le faire
  5. 5. Contenu des objets X et Y x #> # A tibble: 3 × 2 #> id x #> <int> <chr> #> 1 1 x1 #> 2 2 x2 #> 3 3 x3 y #> # A tibble: 3 × 2 #> id y #> <int> <chr> #> 1 1 y1 #> 2 2 y2 #> 3 4 y4
  6. 6. inner_join(x, y, by = "id") #> # A tibble: 2 × 3 #> id x y #> <int> <chr> <chr> #> 1 1 x1 y1 #> 2 2 x2 y2 Inner Join (jointure intérieure) On ne garde que les lignes communes à x et y ET toutes les colonnes associées
  7. 7. left_join(x, y, by = "id") #> # A tibble: 3 × 3 #> id x y #> <int> <chr> <chr> #> 1 1 x1 y1 #> 2 2 x2 y2 #> 3 3 x3 <NA> Left Join (jointure à gauche) On ne garde que les lignes de x, et toutes les colonnes de x et y, MAIS les lignes de x qui ne sont pas dans y auront des valeurs NA dans les nouvelles colonnes.
  8. 8. left_join(x, y_extra, by = "id" #> # A tibble: 4 × 3 #> id x y #> <dbl> <chr> <chr> #> 1 1 x1 y1 #> 2 2 x2 y2 #> 3 2 x2 y5 #> 4 3 x3 <NA> Left Join (avec plus de lignes dans y) ... S'il y a plusieurs correspondances entre "x" et "y", toutes les combinaisons de ces correspondances sont renvoyées.
  9. 9. right_join(x, y, by = "id") #> # A tibble: 3 × 3 #> id x y #> <int> <chr> <chr> #> 1 1 x1 y1 #> 2 2 x2 y2 #> 3 4 <NA> y4 Right Join (jointure à droite) On ne garde que les lignes de y, et toutes les colonnes de x et y, MAIS les lignes de y qui ne sont pas dans x auront des valeurs NA dans les nouvelles colonnes.
  10. 10. full_join(x, y, by = "id") #> # A tibble: 4 × 3 #> id x y #> <int> <chr> <chr> #> 1 1 x1 y1 #> 2 2 x2 y2 #> 3 3 x3 <NA> #> 4 4 <NA> y4 Full Join (jointure complète) On garde toutes les lignes et toutes les colonnes de x et y. La valeur NA est attribuée aux cellules qui n'ont pas de vis-à-vis
  11. 11. Filtering Joins (Jointures filtrantes) Ces jointures affectent les observations de la même manière que le font les jointures aux variables. ... Les semi-joints sont utiles pour faire correspondre les tableaux récapitulatifs filtrés aux lignes d'origine. ... Les anti-joints sont utiles pour identifier les discordances entre les joints.
  12. 12. semi_join(x, y, by = "id") #> # A tibble: 2 × 2 #> id x #> <int> <chr> #> 1 1 x1 #> 2 2 x2 Semi Join (jointures partielles) Ne garde que les lignes de x qui sont présentes dans y et supprime toutes les colonnes de y.
  13. 13. anti_join(x, y, by = "id") #> # A tibble: 1 × 2 #> id x #> <int> <chr> #> 1 3 x3 Anti Join (Anti jointures) Ne garde que les lignes de x qui ne sont pas présentes dans y et supprime toutes les colonnes de y.
  14. 14. Set Operations (Opérations d'ensembles) Utiles pour des opérations de filtrage plus complexes ett comportant divers critères. On utilise des opérateurs d'ensembles : Union et Intersection, ...
  15. 15. union(y, x) #> # A tibble: 4 × 2 #> x y #> <chr> <chr> #> 1 1 a #> 2 2 b #> 3 1 b #> 4 2 a Union Toutes les lignes (uniques) de x et y.
  16. 16. union_all(x, y) #> # A tibble: 5 × 2 #> x y #> <chr> <chr> #> 1 1 a #> 2 1 b #> 3 2 a #> 4 1 a #> 5 2 b Union All (On garde même les répétitions!!!) On garde toutes les lignes de x et y
  17. 17. intersect(x, y) #> # A tibble: 1 × 2 #> x y #> <chr> <chr> #> 1 1 a Intersection On ne garde que les lignes présentes à la fois dans x et dans y
  18. 18. setdiff(x, y) #> # A tibble: 2 × 2 #> x y #> <chr> <chr> #> 1 1 b #> 2 2 a Set Difference (Différence d'ensembles) Seulement les lignes (uniques) de x et non y
  19. 19. Tidy Data (Données rangée) Un ensemble de données est dit tidy s'il vérifie trois règles 1. chaque variable est une colonne 2. chaque observation est une ligne 3. chaque type d'observation est dans une table différente. Le package [tidyr] contient de nombreux outils/fonctions pour nettoyer et ranger un ensemble de données
  20. 20. wide #> # A tibble: 2 × 4 #> id x y z #> <int> <chr> <chr> <chr> #> 1 1 a c e #> 2 2 b d f long #> # A tibble: 6 × 3 #> id key val #> <int> <chr> <chr> #> 1 1 x a #> 2 2 x b #> 3 1 y c #> 4 2 y d #> 5 1 z e #> 6 2 z f Tidy Data (Données rangée)
  21. 21. Spread and Gather (Disperser et rassembler) spread(data, key, value) Répartir une paire de variables clé-valeur key-value sur plusieurs colonnes. Très utile lorsqu'une colonne contient des observations provenant de plusieurs variables. gather(data, key = "key", value = "value", ...) Gather regroupe plusieurs colonnes selon une paire de variables clé-valeur key-value, en dupliquant toutes les autres colonnes selon les besoins. La fonction gather() est très utile lorsque des noms de colonnes ne sont pas des noms de variables, mais des valeurs d'une variable.
  22. 22. gather(wide, key, val, x:z) #> # A tibble: 6 × 3 #> id key val #> <int> <chr> <chr> #> 1 1 x a #> 2 2 x b #> 3 1 y c #> 4 2 y d #> 5 1 z e #> 6 2 z f spread(long, key, val) #> # A tibble: 2 × 4 #> id x y z #> <int> <chr> <chr> <chr> #> 1 1 a c e #> 2 2 b d f Spread and Gather (Disperser et rassembler)
  23. 23. Aide mémoire

×