Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
r_hadleyverse_fr [2016/11/09 18:42] xaviergb [Exemple montrant comment utiliser les formats long et large avec le jeu de données airquality] |
r_hadleyverse_fr [2016/11/09 22:24] (current) xaviergb [Atelier 3: Introduction à ggplot2, tidyr & dplyr] |
||
|---|---|---|---|
| Line 14: | Line 14: | ||
| Lien vers la présentation Prezi associée : [[http://prezi.com/c8w7zdbfv0ap/|Prezi]] | Lien vers la présentation Prezi associée : [[http://prezi.com/c8w7zdbfv0ap/|Prezi]] | ||
| - | Téléchargez le script R pour cet atelier : [[http://qcbs.ca/wiki/_media/ggplot.r|Script]] | + | Téléchargez le script R pour cet atelier : {{:atelier3.r|Script}} |
| ===== 1. Tracer des graphiques avec R en utilisant la grammaire des graphiques (ggplot2) ===== | ===== 1. Tracer des graphiques avec R en utilisant la grammaire des graphiques (ggplot2) ===== | ||
| Line 812: | Line 811: | ||
| On peut aussi utiliser le format long pour créer un graphique qui inclut **toutes les variables sur un seul panneau** : | On peut aussi utiliser le format long pour créer un graphique qui inclut **toutes les variables sur un seul panneau** : | ||
| <code rsplus | > | <code rsplus | > | ||
| - | meteo2 <- ggplot(air.long, aes(x=Day, y=value, colour=variable)) + | + | meteo2 <- ggplot(air.long, aes(x = Day, y = value, colour = variable)) + |
| geom_point() + | geom_point() + | ||
| - | facet_wrap(~Month, nrow=1) | + | facet_wrap(~Month, nrow = 1) |
| meteo2 | meteo2 | ||
| </code> | </code> | ||
| Line 915: | Line 914: | ||
| <code rsplus | > | <code rsplus | > | ||
| - | > air_mess <- sample_frac(airquality, 1) | + | > air_degat <- sample_frac(airquality, 1) |
| - | > head(air_mess) | + | > head(air_degat) |
| Ozone Solar.R Wind Temp Month Day | Ozone Solar.R Wind Temp Month Day | ||
| 21 1 8 9.7 59 5 21 | 21 1 8 9.7 59 5 21 | ||
| Line 929: | Line 928: | ||
| <code rsplus | > | <code rsplus | > | ||
| - | > air_chron <- arrange(air_mess, Month, Day) | + | > air_chron <- arrange(air_degat, Month, Day) |
| > head(air_chron) | > head(air_chron) | ||
| Ozone Solar.R Wind Temp Month Day | Ozone Solar.R Wind Temp Month Day | ||
| Line 1003: | Line 1002: | ||
| <code rsplus | > | <code rsplus | > | ||
| - | > month_sum <- airquality %>% | + | > mois_moy <- airquality %>% |
| group_by(Month) %>% | group_by(Month) %>% | ||
| summarise(mean_temp = mean(Temp), | summarise(mean_temp = mean(Temp), | ||
| - | sd_temp = sd(Temp)) | + | sd_temp = sd(Temp)) |
| - | > month_sum | + | mois_moy |
| Source: local data frame [5 x 3] | Source: local data frame [5 x 3] | ||
| Line 1026: | Line 1025: | ||
| ++++Solution| | ++++Solution| | ||
| <code rsplus | > | <code rsplus | > | ||
| - | > weight_diff <- ChickWeight %>% | + | > mass_diff <- ChickWeight %>% |
| group_by(Chick) %>% | group_by(Chick) %>% | ||
| - | summarise(weight_diff = max(weight) - min(weight)) | + | summarise(mass_diff = max(weight) - min(weight)) |
| - | > weight_diff | + | > mass_diff |
| Source: local data frame [50 x 2] | Source: local data frame [50 x 2] | ||
| Line 1049: | Line 1048: | ||
| Notez qu'ici on mesure simplement la différence de masse entre le maximum et le minimum. Il ne s'agit donc pas de la différence de masse entre le début et la fin de l'étude (différence en ordre chronologique de la masse). Inspectez de plus près les observations liées au poussin # 18 : | Notez qu'ici on mesure simplement la différence de masse entre le maximum et le minimum. Il ne s'agit donc pas de la différence de masse entre le début et la fin de l'étude (différence en ordre chronologique de la masse). Inspectez de plus près les observations liées au poussin # 18 : | ||
| <code rsplus | > | <code rsplus | > | ||
| - | > chick_18 <- ChickWeight %>% filter(Chick == 18) | + | > poussin_18 <- ChickWeight %>% filter(Chick == 18) |
| - | > chick_18 | + | > poussin_18 |
| weight Time Chick Diet | weight Time Chick Diet | ||
| 1 39 0 18 1 | 1 39 0 18 1 | ||
| Line 1074: | Line 1073: | ||
| ++++Solution| | ++++Solution| | ||
| <code rsplus | > | <code rsplus | > | ||
| - | > diet_summ <- ChickWeight %>% | + | > diet_mass <- ChickWeight %>% |
| group_by(Diet, Chick) %>% | group_by(Diet, Chick) %>% | ||
| - | summarise(weight_gain = last(weight) - first(weight)) %>% | + | summarise(gain_masse = last(weight) - first(weight)) %>% |
| group_by(Diet) %>% | group_by(Diet) %>% | ||
| - | summarise(mean_gain = mean(weight_gain)) | + | summarise(gain_moyen = mean(gain_masse)) |
| - | > diet_summ | + | > diet_mass |
| - | # A tibble: 4 × 2 | + | Source: local data frame [4 x 2] |
| - | Diet mean_gain | + | |
| - | <fctr> <dbl> | + | Diet gain_moyen |
| - | 1 1 114.9 | + | (fctr) (dbl) |
| - | 2 2 174.0 | + | 1 1 114.9 |
| - | 3 3 229.5 | + | 2 2 174.0 |
| - | 4 4 188.3 | + | 3 3 229.5 |
| + | 4 4 188.3 | ||
| </code> | </code> | ||
| Cette solution démontre bien la simplicité et l'élégance de la syntaxe de ''dplyr'' et ''magrittr'' en situation où nous devons manipuler nos données en plusieurs étapes consécutives. Un défi encore plus difficile, même pour les experts en fonctions dans ''R'' de base, serait de reproduire les mêmes opérations avec moins de touches de votre clavier. Nous avons essayé et nous avons échoué... Peut-être sommes-nous trop habitués à ''dplyr'' maintenant? | Cette solution démontre bien la simplicité et l'élégance de la syntaxe de ''dplyr'' et ''magrittr'' en situation où nous devons manipuler nos données en plusieurs étapes consécutives. Un défi encore plus difficile, même pour les experts en fonctions dans ''R'' de base, serait de reproduire les mêmes opérations avec moins de touches de votre clavier. Nous avons essayé et nous avons échoué... Peut-être sommes-nous trop habitués à ''dplyr'' maintenant? | ||
