library(tidyverse)
Le jeu de données utilisé pour ce TD est msleep
, un ensemble de données sur le sommeil des mammifères.
awake
(temps d’éveil par jour, en heures) avec geom_histogram()
fill = vore
. Que constatez-vous ?geom_density
pour chaque catégorie de régime alimentaire avec facet_wrap
Note : il est possible de dissocier les valeurs de l’axe des y dans les différentes facets avec l’argument scales = "free_y"
geom_bar()
conservation
geom_bar
, que change l’argument position = "dodge"
ou bien position = "fill"
?awake
) en fonction du temps de sommeil paradoxal (sleep_rem
)bodywt
: body weight) avec les arguments color
et size
brainwt
) en fonction du temps de sommeil total (sleep_total
). Le graphique est plus clair avec une échelle log pour l’axe des ordonnées (scale_y_log10()
). Ajoutez une courbe de lissage avec stat_smooth()
.geom_boxplot
. Le titre du graphe se modifie avec labs(title = "Titre du graphe")
, ceux des axes avec xlab("label pour x")
et ylab("label pour y")
La fonction ggsave
envoie le dernier graphe dans un fichier, avec le format correct en fonction de l’extension de fichier donnée (par exemple gif, png, jpg, pdf, eps).
ggsave(filename = "Boxplot.jpg")
On peut modifier la taille et la résolution de l’image :
ggsave(filename = "Boxplot-large.jpg", width = 8, height = 4)
ggsave(filename = "Boxplot-large-HD.jpg", width = 8, height = 4, dpi = 300)
filter()
, trouvez les 8 mamifères qui dorment plus de 16 heures par jour## # A tibble: 8 x 11
## name genus vore order conservation sleep_total sleep_rem sleep_cycle
## <chr> <chr> <chr> <chr> <chr> <dbl> <dbl> <dbl>
## 1 Owl … Aotus omni Prim… <NA> 17 1.8 NA
## 2 Long… Dasy… carni Cing… lc 17.4 3.1 0.383
## 3 Nort… Dide… omni Dide… lc 18 4.9 0.333
## 4 Big … Epte… inse… Chir… lc 19.7 3.9 0.117
## 5 Thic… Lutr… carni Dide… lc 19.4 6.6 NA
## 6 Litt… Myot… inse… Chir… <NA> 19.9 2 0.2
## 7 Gian… Prio… inse… Cing… en 18.1 6.1 NA
## 8 Arct… Sper… herbi Rode… lc 16.6 NA NA
## # … with 3 more variables: awake <dbl>, brainwt <dbl>, bodywt <dbl>
arrange()
, triez les données par ordre taxonomique (order
) puis par temps de sommeil croissant (sleep_total
)## # A tibble: 83 x 11
## name genus vore order conservation sleep_total sleep_rem sleep_cycle
## <chr> <chr> <chr> <chr> <chr> <dbl> <dbl> <dbl>
## 1 Tenr… Tenr… omni Afro… <NA> 15.6 2.3 NA
## 2 Pig Sus omni Arti… domesticated 9.1 2.4 0.5
## 3 Goat Capri herbi Arti… lc 5.3 0.6 NA
## 4 Cow Bos herbi Arti… domesticated 4 0.7 0.667
## 5 Sheep Ovis herbi Arti… domesticated 3.8 0.6 NA
## 6 Roe … Capr… herbi Arti… lc 3 NA NA
## 7 Gira… Gira… herbi Arti… cd 1.9 0.4 NA
## 8 Tiger Pant… carni Carn… en 15.8 NA NA
## 9 Lion Pant… carni Carn… vu 13.5 NA NA
## 10 Dome… Felis carni Carn… domesticated 12.5 3.2 0.417
## # … with 73 more rows, and 3 more variables: awake <dbl>, brainwt <dbl>,
## # bodywt <dbl>
select()
, sélectionnez les colonnes qui commencent par “sleep”## # A tibble: 83 x 3
## sleep_total sleep_rem sleep_cycle
## <dbl> <dbl> <dbl>
## 1 12.1 NA NA
## 2 17 1.8 NA
## 3 14.4 2.4 NA
## 4 14.9 2.3 0.133
## 5 4 0.7 0.667
## 6 14.4 2.2 0.767
## 7 8.7 1.4 0.383
## 8 7 NA NA
## 9 10.1 2.9 0.333
## 10 3 NA NA
## # … with 73 more rows
%>%
, enchainez les opérations suivantes : Sélectionnez les colonnes name
, order
et sleep_total
, triez en fonction de order
puis de sleep_total
et enfin filtrer pour les mamifères dormant 16h ou plus.## # A tibble: 8 x 3
## name order sleep_total
## <chr> <chr> <dbl>
## 1 Big brown bat Chiroptera 19.7
## 2 Little brown bat Chiroptera 19.9
## 3 Long-nosed armadillo Cingulata 17.4
## 4 Giant armadillo Cingulata 18.1
## 5 North American Opossum Didelphimorphia 18
## 6 Thick-tailed opposum Didelphimorphia 19.4
## 7 Owl monkey Primates 17
## 8 Arctic ground squirrel Rodentia 16.6
mutate()
, créez une nouvelle variable rem_proportion
qui calcule la proportion de sommeil paradoxal (sleep_rem
) par rapport au sommeil total (sleep_total
)## # A tibble: 83 x 4
## name order sleep_total rem_proportion
## <chr> <chr> <dbl> <dbl>
## 1 Cheetah Carnivora 12.1 NA
## 2 Owl monkey Primates 17 0.106
## 3 Mountain beaver Rodentia 14.4 0.167
## 4 Greater short-tailed shrew Soricomorpha 14.9 0.154
## 5 Cow Artiodactyla 4 0.175
## 6 Three-toed sloth Pilosa 14.4 0.153
## 7 Northern fur seal Carnivora 8.7 0.161
## 8 Vesper mouse Rodentia 7 NA
## 9 Dog Carnivora 10.1 0.287
## 10 Roe deer Artiodactyla 3 NA
## # … with 73 more rows
La fonction summarise()
permet de calculer des statistiques récapitulatives sur le jeu de données. Ici par exemple, nous calculons le temps de sommeil moyen, le temps de sommeil minimal et le temps de sommeil maximal pour tous les animaux.
msleep %>%
summarise(avg_sleep = mean(sleep_total),
min_sleep = min(sleep_total),
max_sleep = max(sleep_total),
total = n())
## # A tibble: 1 x 4
## avg_sleep min_sleep max_sleep total
## <dbl> <dbl> <dbl> <int>
## 1 10.4 1.9 19.9 83
group_by()
et summarise()
calculez, pour chaque ordre taxonomique : le nombre d’animaux, le temps de sommeil moyen, le temps de sommeil minimal et le temps de sommeil maximal.## # A tibble: 19 x 5
## order total avg_sleep min_sleep max_sleep
## <chr> <int> <dbl> <dbl> <dbl>
## 1 Afrosoricida 1 15.6 15.6 15.6
## 2 Artiodactyla 6 4.52 1.9 9.1
## 3 Carnivora 12 10.1 3.5 15.8
## 4 Cetacea 3 4.5 2.7 5.6
## 5 Chiroptera 2 19.8 19.7 19.9
## 6 Cingulata 2 17.8 17.4 18.1
## 7 Didelphimorphia 2 18.7 18 19.4
## 8 Diprotodontia 2 12.4 11.1 13.7
## 9 Erinaceomorpha 2 10.2 10.1 10.3
## 10 Hyracoidea 3 5.67 5.3 6.3
## 11 Lagomorpha 1 8.4 8.4 8.4
## 12 Monotremata 1 8.6 8.6 8.6
## 13 Perissodactyla 3 3.47 2.9 4.4
## 14 Pilosa 1 14.4 14.4 14.4
## 15 Primates 12 10.5 8 17
## 16 Proboscidea 2 3.6 3.3 3.9
## 17 Rodentia 22 12.5 7 16.6
## 18 Scandentia 1 8.9 8.9 8.9
## 19 Soricomorpha 5 11.1 8.4 14.9
À paritr du jeu de données ìris
head(iris)
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1 5.1 3.5 1.4 0.2 setosa
## 2 4.9 3.0 1.4 0.2 setosa
## 3 4.7 3.2 1.3 0.2 setosa
## 4 4.6 3.1 1.5 0.2 setosa
## 5 5.0 3.6 1.4 0.2 setosa
## 6 5.4 3.9 1.7 0.4 setosa
on veut obtenir le graphique suivant :
pivot_longer()
, créez un jeu de données où les étiquettes Sepal.Length
Sepal.Width
Petal.Length
Petal.Width
sont bien rangées dans une colonne appelée Variables
. Les mesures correspondantes sont rangées dans une colonne appelée Mesures
.## # A tibble: 6 x 3
## Species Variables Mesures
## <fct> <chr> <dbl>
## 1 setosa Sepal.Length 5.1
## 2 setosa Sepal.Width 3.5
## 3 setosa Petal.Length 1.4
## 4 setosa Petal.Width 0.2
## 5 setosa Sepal.Length 4.9
## 6 setosa Sepal.Width 3
À partir du jeu de données précédent, créez le boxplot attendu.
Avec la fonction separate()
séparez le data frame suivant en trois colonnes : Year, Month et Day
data.frame(Date = as.Date('2017-01-01') + 0:12)
## Year Month Day
## 1 2017 01 01
## 2 2017 01 02
## 3 2017 01 03
## 4 2017 01 04
## 5 2017 01 05
## 6 2017 01 06