Retour à la page d’accueil


Aujourd’hui nous allons voir comment:

  1. Extraire les statistiques descriptives avec group_by() et summarise()

  2. Ajouter ces statistiques descriptives à un graphique

Mise en place

Avant de rentrer dans le vif du sujet il nous faut mettre en place notre environnement de travail. Créez un nouveau script R et:

# Chargez la librairie `tidyverse`

# changer votre répertoire de travail pour être dans le repertoire de la session 5

# Importer `burghardt_et_al_2015_expt1.txt` et mettez le dans un objet appelé `expt1`


Nous sommes maintenant prêt!


Extraire les statistiques descriptives avec group_by() et summarise()

Parfois nous voulons résumer nos données dans une table plus petite et en extraire des statistiques descriptives (moyenne, médiane, nombre d’observations …).

Ce type d’opération peut être fait avec la combinaison de deux fonctions: group_by() et summarise().

Notez que group_by() ne change pas le format de la table de données. Cette fonction liste des lignes qui doivent être groupées. Nous pouvons ensuite utiliser summarise() pour extraire des statistiques descriptives de chaque groupe.

Par exemple, nous pouvons extraire la moyenne pour le temps de floraison de chaque génotype:

group_by(expt1, genotype) %>% 
summarise(mean.days.to.flower = mean(days.to.flower, na.rm = TRUE))
## # A tibble: 10 × 2
##    genotype   mean.days.to.flower
##    <chr>                    <dbl>
##  1 Col Ama                   55.8
##  2 Col FRI                   70.2
##  3 Ler-1                     55.6
##  4 fca-6                     70.4
##  5 flc-3 FRI                 53.1
##  6 flk-1                     77.6
##  7 fve-3                     81.2
##  8 ld-1                      89.8
##  9 prmt5 FRI                 88.7
## 10 vin3-4 FRI                95.7

L’output contient deux colonnes:

  • genotype qui est la colonne qui a servi à grouper les données

  • mean.days.to.flower qui est la colonne crée par la fonction summarise

Il n’y a que 10 lignes dans cette table, une par génotype.

Il est possible de grouper les données par plus d’une variable.

Par exemple nous pouvons mesurer la moyenne, la médiane et l’écart type pour chaque génotype aux différentes températures:

group_by(expt1, genotype, temperature) %>% 
summarise(mean.days.flower = mean(days.to.flower, na.rm = TRUE),
          sd.days.flower = sd(days.to.flower, na.rm = TRUE),
          median.days.flower = median(days.to.flower, na.rm = TRUE))
## `summarise()` has grouped output by 'genotype'. You can override using the
## `.groups` argument.
## # A tibble: 20 × 5
## # Groups:   genotype [10]
##    genotype   temperature mean.days.flower sd.days.flower median.days.flower
##    <chr>            <dbl>            <dbl>          <dbl>              <dbl>
##  1 Col Ama             12             66.6          25.5                62  
##  2 Col Ama             22             46.0          20.5                51  
##  3 Col FRI             12             81.1          26.2                80  
##  4 Col FRI             22             57.8          25.9                59.5
##  5 Ler-1               12             67.4          22.7                64  
##  6 Ler-1               22             45.2          18.3                51.5
##  7 fca-6               12             76.2          20.9                72.5
##  8 fca-6               22             63.9          34.6                40  
##  9 flc-3 FRI           12             64.7          25.2                46  
## 10 flc-3 FRI           22             43            17.5                50  
## 11 flk-1               12             87.8          27.9                87  
## 12 flk-1               22             61.2          29.2                47  
## 13 fve-3               12             96.1          26.3                92  
## 14 fve-3               22             51.5           5.96               49  
## 15 ld-1                12             99.8          27.8               100  
## 16 ld-1                22             72.9          36.5                60  
## 17 prmt5 FRI           12            103.           22.0               102  
## 18 prmt5 FRI           22             67.2          26.6                62  
## 19 vin3-4 FRI          12            111.           40.0                83  
## 20 vin3-4 FRI          22             72.5          29.7                69

Il y a maintenant 20 lignes dans la table, car chaque génotype apparaît deux fois (12 et 22 degrés)

Une autre information utile que nous pouvons extraire est le nombre d’observation pour chaque groupe. Pour cela nous devons utiliser la fonction n(), dans summarise() qui compte le nombre de ligne pour chaque groupe.

Par exemple, pour connaitre le nombre d’observations pour chaque génotype:

group_by(expt1, genotype) %>% 
summarise(n.obs = n())
## # A tibble: 10 × 2
##    genotype   n.obs
##    <chr>      <int>
##  1 Col Ama      135
##  2 Col FRI      128
##  3 Ler-1         68
##  4 fca-6         64
##  5 flc-3 FRI    136
##  6 flk-1         60
##  7 fve-3         60
##  8 ld-1          60
##  9 prmt5 FRI    125
## 10 vin3-4 FRI   121

Attention, n() ne peut être utilisé que dans la fonction summarise().

Attention: Quand vous utilisez la fonction group_by(), les lignes du tableau restent groupées en fonction de la variable utilisée. Les opérations suivantes vont utiliser ces groupes, ce qui peut poser problème. Pensez à utiliser la fonction ungroup() pour enlever les groupes quand vous avez fini avec group_by() et summarise()

Exercice 1:

Calculez la médiane et l’écart-type de blade.length.mm et total.leaf.length.mm pour chaque genotype aux différentes day.length. Ajoutez aussi le nombre d’observations de chaque groupe

BONUS
Calculez chaque genotype en fonction de s’ils ont subit ou non une vernalization: La moyenne du ratio de blade.length.mm et total.leaf.length.mm
Le nombre d’observation de chaque groupe
Modifiez la colonne qui contient le nombre d’observations de manière à ajouter “n=” devant la valeur du nombre d’observations


Insérer les statistiques descriptives à un graphique

Une autre possibilité est d’ajouter les statistiques descriptives à un graphique contenant les données.

Pour cela, nous devons:

  • Utiliser group_by() et summarise() pour extraire les statistiques descriptives

  • Utiliser une fonction de la famille *_join() pour les combiner avec nos données

  • Nous pouvons maintenant faire un graphique contenant les données et les statistiques descriptives.

Par exemple, prenons ce boxplot:

  ggplot( expt1, aes(genotype, rosette.leaf.num)) +
  geom_boxplot()
## Warning: Removed 95 rows containing non-finite outside the scale range
## (`stat_boxplot()`).

Si nous voulons y ajouter le nombre d’observations pour chaque groupe, nous utilisons le script suivant:

group_by(expt1, genotype) %>% 
  summarise(n.obs=n()) %>% 
  mutate(n.obs=paste("n =",n.obs)) %>% 
  inner_join(expt1, by="genotype") %>% 
  ggplot( aes(genotype, rosette.leaf.num)) +
  geom_boxplot() +
  geom_text(aes(label=n.obs, x=genotype, y=0))
## Warning: Removed 95 rows containing non-finite outside the scale range
## (`stat_boxplot()`).


Exercice 2

Faites un voilin plot de total.leaf.length.mm pour chaque génotype et ajoutez la médiane pour chaque groupe (avec un point coloré) ainsi que le nombre d’observation de chaque groupe

Exportez et sauvez le graphique obtenu au format jpg

BONUS Lisez la partie du cours sur les facteurs (que nous n’aurons pas le temps de traiter) et faites l’exercice 3.


Avec cette même méthode il est aussi possible d’ajouter des informations pour des groupes formés à partir de deux variables.

Par exemple, si nous voulons faire un boxplot rosette.leaf.num pour chaque génotype en fonction de la température et y ajouter le nombre d’observations des différents groupes, nous utilisons le script suivant:

group_by(expt1, genotype, fluctuation) %>% 
  summarise(n.obs=n()) %>% 
  mutate(n.obs=paste("n =",n.obs)) %>% 
  inner_join(expt1, by=c("genotype", "fluctuation")) %>% 
  ggplot( aes(genotype, rosette.leaf.num, fill=fluctuation)) +
  geom_boxplot() +
  geom_text(aes(label=n.obs, x=genotype, y=-2),position=position_dodge(0.8), angle=45)
## `summarise()` has grouped output by 'genotype'. You can override using the
## `.groups` argument.
## Warning: Removed 95 rows containing non-finite outside the scale range
## (`stat_boxplot()`).


Changer l’ordre des catégories dans un graphique en utilisant des facteurs

Par défaut, les catégories dans un graphique sont ordonnées alphabétiquement. Bien souvent ce n’est pas l’ordre que nous voulons.

Par exemple, essayons de reproduire le graphique suivant:

filter(expt1, temperature==22, day.length==16) %>% 
ggplot(aes(x=genotype, y=days.to.bolt, fill=fluctuation)) +
  geom_boxplot()

Les génotypes ne sont pas dans le même ordre car ggplot a utilisé l’ordre alphabétique, même s’ils n’étaient pas dans cet ordre dans le tableau.

Afin de changer l’ordre nous devons utiliser un autre type de variable, les facteurs. Les facteurs sont des variables spéciales de type caractère pour lesquels nous pouvons définir des niveaux ( levels ), c’est à dire les modalités prédéfinies de cette variable. Ces niveaux sont les valeurs uniques de la variable auxquelles un ordre peut être attaché.

Nous pouvons convertir une variable en facteurs en utilisant la fonction factor():

# Convertissons genotype dans expt1 en facteurs:
factor(expt1$genotype)
##   [1] Col Ama    Col Ama    Col Ama    Col Ama    Col Ama    Col Ama   
##   [7] Col Ama    Col Ama    Col Ama    Col Ama    Col Ama    Col Ama   
##  [13] Col Ama    Col Ama    Col Ama    Col Ama    Col Ama    Col Ama   
##  [19] Col Ama    Col Ama    Col Ama    Col Ama    Col Ama    Col Ama   
##  [25] Col Ama    Col Ama    Col Ama    Col Ama    Col Ama    Col Ama   
##  [31] Col Ama    Col Ama    Col Ama    Col Ama    Col Ama    Col Ama   
##  [37] Col Ama    Col Ama    Col Ama    Col Ama    Col Ama    Col Ama   
##  [43] Col Ama    Col Ama    Col Ama    Col Ama    Col Ama    Col Ama   
##  [49] Col Ama    Col Ama    Col Ama    Col Ama    Col Ama    Col Ama   
##  [55] Col Ama    Col Ama    Col Ama    Col Ama    Col Ama    Col Ama   
##  [61] Col Ama    Col Ama    Col Ama    Col Ama    Col Ama    Col Ama   
##  [67] Col Ama    Col Ama    Col Ama    Col Ama    Col Ama    Col Ama   
##  [73] Col Ama    Col Ama    Col Ama    Col Ama    Col Ama    Col Ama   
##  [79] Col Ama    Col Ama    Col Ama    Col Ama    Col Ama    Col Ama   
##  [85] Col Ama    Col Ama    Col Ama    Col Ama    Col Ama    Col Ama   
##  [91] Col Ama    Col Ama    Col Ama    Col Ama    Col Ama    Col Ama   
##  [97] Col Ama    Col Ama    Col Ama    Col Ama    Col Ama    Col Ama   
## [103] Col Ama    Col Ama    Col Ama    Col Ama    Col Ama    Col Ama   
## [109] Col Ama    Col Ama    Col Ama    Col Ama    Col Ama    Col Ama   
## [115] Col Ama    Col Ama    Col Ama    Col Ama    Col Ama    Col Ama   
## [121] Col Ama    Col Ama    Col Ama    Col Ama    Col Ama    Col Ama   
## [127] Col Ama    Col Ama    Col Ama    Col Ama    Col Ama    Col Ama   
## [133] Col Ama    Col Ama    Col Ama    Col FRI    Col FRI    Col FRI   
## [139] Col FRI    Col FRI    Col FRI    Col FRI    Col FRI    Col FRI   
## [145] Col FRI    Col FRI    Col FRI    Col FRI    Col FRI    Col FRI   
## [151] Col FRI    Col FRI    Col FRI    Col FRI    Col FRI    Col FRI   
## [157] Col FRI    Col FRI    Col FRI    Col FRI    Col FRI    Col FRI   
## [163] Col FRI    Col FRI    Col FRI    Col FRI    Col FRI    Col FRI   
## [169] Col FRI    Col FRI    Col FRI    Col FRI    Col FRI    Col FRI   
## [175] Col FRI    Col FRI    Col FRI    Col FRI    Col FRI    Col FRI   
## [181] Col FRI    Col FRI    Col FRI    Col FRI    Col FRI    Col FRI   
## [187] Col FRI    Col FRI    Col FRI    Col FRI    Col FRI    Col FRI   
## [193] Col FRI    Col FRI    Col FRI    Col FRI    Col FRI    Col FRI   
## [199] Col FRI    Col FRI    Col FRI    Col FRI    Col FRI    Col FRI   
## [205] Col FRI    Col FRI    Col FRI    Col FRI    Col FRI    Col FRI   
## [211] Col FRI    Col FRI    Col FRI    Col FRI    Col FRI    Col FRI   
## [217] Col FRI    Col FRI    Col FRI    Col FRI    Col FRI    Col FRI   
## [223] Col FRI    Col FRI    Col FRI    Col FRI    Col FRI    Col FRI   
## [229] Col FRI    Col FRI    Col FRI    Col FRI    Col FRI    Col FRI   
## [235] Col FRI    Col FRI    Col FRI    Col FRI    Col FRI    Col FRI   
## [241] Col FRI    Col FRI    Col FRI    Col FRI    Col FRI    Col FRI   
## [247] Col FRI    Col FRI    Col FRI    Col FRI    Col FRI    Col FRI   
## [253] Col FRI    Col FRI    Col FRI    Col FRI    Col FRI    Col FRI   
## [259] Col FRI    Col FRI    Col FRI    Col FRI    Col FRI    fca-6     
## [265] fca-6      fca-6      fca-6      fca-6      fca-6      fca-6     
## [271] fca-6      fca-6      fca-6      fca-6      fca-6      fca-6     
## [277] fca-6      fca-6      fca-6      fca-6      fca-6      fca-6     
## [283] fca-6      fca-6      fca-6      fca-6      fca-6      fca-6     
## [289] fca-6      fca-6      fca-6      fca-6      fca-6      fca-6     
## [295] fca-6      fca-6      fca-6      fca-6      fca-6      fca-6     
## [301] fca-6      fca-6      fca-6      fca-6      fca-6      fca-6     
## [307] fca-6      fca-6      fca-6      fca-6      fca-6      fca-6     
## [313] fca-6      fca-6      fca-6      fca-6      fca-6      fca-6     
## [319] fca-6      fca-6      fca-6      fca-6      fca-6      fca-6     
## [325] fca-6      fca-6      fca-6      flc-3 FRI  flc-3 FRI  flc-3 FRI 
## [331] flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI 
## [337] flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI 
## [343] flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI 
## [349] flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI 
## [355] flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI 
## [361] flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI 
## [367] flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI 
## [373] flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI 
## [379] flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI 
## [385] flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI 
## [391] flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI 
## [397] flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI 
## [403] flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI 
## [409] flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI 
## [415] flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI 
## [421] flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI 
## [427] flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI 
## [433] flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI 
## [439] flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI 
## [445] flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI 
## [451] flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI 
## [457] flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI 
## [463] flc-3 FRI  flk-1      flk-1      flk-1      flk-1      flk-1     
## [469] flk-1      flk-1      flk-1      flk-1      flk-1      flk-1     
## [475] flk-1      flk-1      flk-1      flk-1      flk-1      flk-1     
## [481] flk-1      flk-1      flk-1      flk-1      flk-1      flk-1     
## [487] flk-1      flk-1      flk-1      flk-1      flk-1      flk-1     
## [493] flk-1      flk-1      flk-1      flk-1      flk-1      flk-1     
## [499] flk-1      flk-1      flk-1      flk-1      flk-1      flk-1     
## [505] flk-1      flk-1      flk-1      flk-1      flk-1      flk-1     
## [511] flk-1      flk-1      flk-1      flk-1      flk-1      flk-1     
## [517] flk-1      flk-1      flk-1      flk-1      flk-1      flk-1     
## [523] flk-1      fve-3      fve-3      fve-3      fve-3      fve-3     
## [529] fve-3      fve-3      fve-3      fve-3      fve-3      fve-3     
## [535] fve-3      fve-3      fve-3      fve-3      fve-3      fve-3     
## [541] fve-3      fve-3      fve-3      fve-3      fve-3      fve-3     
## [547] fve-3      fve-3      fve-3      fve-3      fve-3      fve-3     
## [553] fve-3      fve-3      fve-3      fve-3      fve-3      fve-3     
## [559] fve-3      fve-3      fve-3      fve-3      fve-3      fve-3     
## [565] fve-3      fve-3      fve-3      fve-3      fve-3      fve-3     
## [571] fve-3      fve-3      fve-3      fve-3      fve-3      fve-3     
## [577] fve-3      fve-3      fve-3      fve-3      fve-3      fve-3     
## [583] fve-3      ld-1       ld-1       ld-1       ld-1       ld-1      
## [589] ld-1       ld-1       ld-1       ld-1       ld-1       ld-1      
## [595] ld-1       ld-1       ld-1       ld-1       ld-1       ld-1      
## [601] ld-1       ld-1       ld-1       ld-1       ld-1       ld-1      
## [607] ld-1       ld-1       ld-1       ld-1       ld-1       ld-1      
## [613] ld-1       ld-1       ld-1       ld-1       ld-1       ld-1      
## [619] ld-1       ld-1       ld-1       ld-1       ld-1       ld-1      
## [625] ld-1       ld-1       ld-1       ld-1       ld-1       ld-1      
## [631] ld-1       ld-1       ld-1       ld-1       ld-1       ld-1      
## [637] ld-1       ld-1       ld-1       ld-1       ld-1       ld-1      
## [643] ld-1       Ler-1      Ler-1      Ler-1      Ler-1      Ler-1     
## [649] Ler-1      Ler-1      Ler-1      Ler-1      Ler-1      Ler-1     
## [655] Ler-1      Ler-1      Ler-1      Ler-1      Ler-1      Ler-1     
## [661] Ler-1      Ler-1      Ler-1      Ler-1      Ler-1      Ler-1     
## [667] Ler-1      Ler-1      Ler-1      Ler-1      Ler-1      Ler-1     
## [673] Ler-1      Ler-1      Ler-1      Ler-1      Ler-1      Ler-1     
## [679] Ler-1      Ler-1      Ler-1      Ler-1      Ler-1      Ler-1     
## [685] Ler-1      Ler-1      Ler-1      Ler-1      Ler-1      Ler-1     
## [691] Ler-1      Ler-1      Ler-1      Ler-1      Ler-1      Ler-1     
## [697] Ler-1      Ler-1      Ler-1      Ler-1      Ler-1      Ler-1     
## [703] Ler-1      Ler-1      Ler-1      Ler-1      Ler-1      Ler-1     
## [709] Ler-1      Ler-1      Ler-1      prmt5 FRI  prmt5 FRI  prmt5 FRI 
## [715] prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI 
## [721] prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI 
## [727] prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI 
## [733] prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI 
## [739] prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI 
## [745] prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI 
## [751] prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI 
## [757] prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI 
## [763] prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI 
## [769] prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI 
## [775] prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI 
## [781] prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI 
## [787] prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI 
## [793] prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI 
## [799] prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI 
## [805] prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI 
## [811] prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI 
## [817] prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI 
## [823] prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI 
## [829] prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI 
## [835] prmt5 FRI  prmt5 FRI  vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [841] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [847] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [853] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [859] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [865] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [871] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [877] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [883] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [889] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [895] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [901] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [907] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [913] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [919] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [925] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [931] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [937] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [943] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [949] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [955] vin3-4 FRI vin3-4 FRI vin3-4 FRI
## 10 Levels: Col Ama Col FRI fca-6 flc-3 FRI flk-1 fve-3 ld-1 Ler-1 ... vin3-4 FRI

Nous pouvons voir qu’il y a 10 niveaux, correspondant à chacun des génotypes, et qu’ils sont par ordre alphabétique.

Nous pouvons spécifier l’ordre des niveaux dans la fonction:

factor(expt1$genotype, levels = c("Ler-1", "fca-6", "Col Ama", "flc-3 FRI", "Col FRI", "ld-1", "flk-1",
                                  "fve-3", "prmt5 FRI","vin3-4 FRI"))
##   [1] Col Ama    Col Ama    Col Ama    Col Ama    Col Ama    Col Ama   
##   [7] Col Ama    Col Ama    Col Ama    Col Ama    Col Ama    Col Ama   
##  [13] Col Ama    Col Ama    Col Ama    Col Ama    Col Ama    Col Ama   
##  [19] Col Ama    Col Ama    Col Ama    Col Ama    Col Ama    Col Ama   
##  [25] Col Ama    Col Ama    Col Ama    Col Ama    Col Ama    Col Ama   
##  [31] Col Ama    Col Ama    Col Ama    Col Ama    Col Ama    Col Ama   
##  [37] Col Ama    Col Ama    Col Ama    Col Ama    Col Ama    Col Ama   
##  [43] Col Ama    Col Ama    Col Ama    Col Ama    Col Ama    Col Ama   
##  [49] Col Ama    Col Ama    Col Ama    Col Ama    Col Ama    Col Ama   
##  [55] Col Ama    Col Ama    Col Ama    Col Ama    Col Ama    Col Ama   
##  [61] Col Ama    Col Ama    Col Ama    Col Ama    Col Ama    Col Ama   
##  [67] Col Ama    Col Ama    Col Ama    Col Ama    Col Ama    Col Ama   
##  [73] Col Ama    Col Ama    Col Ama    Col Ama    Col Ama    Col Ama   
##  [79] Col Ama    Col Ama    Col Ama    Col Ama    Col Ama    Col Ama   
##  [85] Col Ama    Col Ama    Col Ama    Col Ama    Col Ama    Col Ama   
##  [91] Col Ama    Col Ama    Col Ama    Col Ama    Col Ama    Col Ama   
##  [97] Col Ama    Col Ama    Col Ama    Col Ama    Col Ama    Col Ama   
## [103] Col Ama    Col Ama    Col Ama    Col Ama    Col Ama    Col Ama   
## [109] Col Ama    Col Ama    Col Ama    Col Ama    Col Ama    Col Ama   
## [115] Col Ama    Col Ama    Col Ama    Col Ama    Col Ama    Col Ama   
## [121] Col Ama    Col Ama    Col Ama    Col Ama    Col Ama    Col Ama   
## [127] Col Ama    Col Ama    Col Ama    Col Ama    Col Ama    Col Ama   
## [133] Col Ama    Col Ama    Col Ama    Col FRI    Col FRI    Col FRI   
## [139] Col FRI    Col FRI    Col FRI    Col FRI    Col FRI    Col FRI   
## [145] Col FRI    Col FRI    Col FRI    Col FRI    Col FRI    Col FRI   
## [151] Col FRI    Col FRI    Col FRI    Col FRI    Col FRI    Col FRI   
## [157] Col FRI    Col FRI    Col FRI    Col FRI    Col FRI    Col FRI   
## [163] Col FRI    Col FRI    Col FRI    Col FRI    Col FRI    Col FRI   
## [169] Col FRI    Col FRI    Col FRI    Col FRI    Col FRI    Col FRI   
## [175] Col FRI    Col FRI    Col FRI    Col FRI    Col FRI    Col FRI   
## [181] Col FRI    Col FRI    Col FRI    Col FRI    Col FRI    Col FRI   
## [187] Col FRI    Col FRI    Col FRI    Col FRI    Col FRI    Col FRI   
## [193] Col FRI    Col FRI    Col FRI    Col FRI    Col FRI    Col FRI   
## [199] Col FRI    Col FRI    Col FRI    Col FRI    Col FRI    Col FRI   
## [205] Col FRI    Col FRI    Col FRI    Col FRI    Col FRI    Col FRI   
## [211] Col FRI    Col FRI    Col FRI    Col FRI    Col FRI    Col FRI   
## [217] Col FRI    Col FRI    Col FRI    Col FRI    Col FRI    Col FRI   
## [223] Col FRI    Col FRI    Col FRI    Col FRI    Col FRI    Col FRI   
## [229] Col FRI    Col FRI    Col FRI    Col FRI    Col FRI    Col FRI   
## [235] Col FRI    Col FRI    Col FRI    Col FRI    Col FRI    Col FRI   
## [241] Col FRI    Col FRI    Col FRI    Col FRI    Col FRI    Col FRI   
## [247] Col FRI    Col FRI    Col FRI    Col FRI    Col FRI    Col FRI   
## [253] Col FRI    Col FRI    Col FRI    Col FRI    Col FRI    Col FRI   
## [259] Col FRI    Col FRI    Col FRI    Col FRI    Col FRI    fca-6     
## [265] fca-6      fca-6      fca-6      fca-6      fca-6      fca-6     
## [271] fca-6      fca-6      fca-6      fca-6      fca-6      fca-6     
## [277] fca-6      fca-6      fca-6      fca-6      fca-6      fca-6     
## [283] fca-6      fca-6      fca-6      fca-6      fca-6      fca-6     
## [289] fca-6      fca-6      fca-6      fca-6      fca-6      fca-6     
## [295] fca-6      fca-6      fca-6      fca-6      fca-6      fca-6     
## [301] fca-6      fca-6      fca-6      fca-6      fca-6      fca-6     
## [307] fca-6      fca-6      fca-6      fca-6      fca-6      fca-6     
## [313] fca-6      fca-6      fca-6      fca-6      fca-6      fca-6     
## [319] fca-6      fca-6      fca-6      fca-6      fca-6      fca-6     
## [325] fca-6      fca-6      fca-6      flc-3 FRI  flc-3 FRI  flc-3 FRI 
## [331] flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI 
## [337] flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI 
## [343] flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI 
## [349] flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI 
## [355] flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI 
## [361] flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI 
## [367] flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI 
## [373] flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI 
## [379] flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI 
## [385] flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI 
## [391] flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI 
## [397] flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI 
## [403] flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI 
## [409] flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI 
## [415] flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI 
## [421] flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI 
## [427] flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI 
## [433] flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI 
## [439] flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI 
## [445] flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI 
## [451] flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI 
## [457] flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI  flc-3 FRI 
## [463] flc-3 FRI  flk-1      flk-1      flk-1      flk-1      flk-1     
## [469] flk-1      flk-1      flk-1      flk-1      flk-1      flk-1     
## [475] flk-1      flk-1      flk-1      flk-1      flk-1      flk-1     
## [481] flk-1      flk-1      flk-1      flk-1      flk-1      flk-1     
## [487] flk-1      flk-1      flk-1      flk-1      flk-1      flk-1     
## [493] flk-1      flk-1      flk-1      flk-1      flk-1      flk-1     
## [499] flk-1      flk-1      flk-1      flk-1      flk-1      flk-1     
## [505] flk-1      flk-1      flk-1      flk-1      flk-1      flk-1     
## [511] flk-1      flk-1      flk-1      flk-1      flk-1      flk-1     
## [517] flk-1      flk-1      flk-1      flk-1      flk-1      flk-1     
## [523] flk-1      fve-3      fve-3      fve-3      fve-3      fve-3     
## [529] fve-3      fve-3      fve-3      fve-3      fve-3      fve-3     
## [535] fve-3      fve-3      fve-3      fve-3      fve-3      fve-3     
## [541] fve-3      fve-3      fve-3      fve-3      fve-3      fve-3     
## [547] fve-3      fve-3      fve-3      fve-3      fve-3      fve-3     
## [553] fve-3      fve-3      fve-3      fve-3      fve-3      fve-3     
## [559] fve-3      fve-3      fve-3      fve-3      fve-3      fve-3     
## [565] fve-3      fve-3      fve-3      fve-3      fve-3      fve-3     
## [571] fve-3      fve-3      fve-3      fve-3      fve-3      fve-3     
## [577] fve-3      fve-3      fve-3      fve-3      fve-3      fve-3     
## [583] fve-3      ld-1       ld-1       ld-1       ld-1       ld-1      
## [589] ld-1       ld-1       ld-1       ld-1       ld-1       ld-1      
## [595] ld-1       ld-1       ld-1       ld-1       ld-1       ld-1      
## [601] ld-1       ld-1       ld-1       ld-1       ld-1       ld-1      
## [607] ld-1       ld-1       ld-1       ld-1       ld-1       ld-1      
## [613] ld-1       ld-1       ld-1       ld-1       ld-1       ld-1      
## [619] ld-1       ld-1       ld-1       ld-1       ld-1       ld-1      
## [625] ld-1       ld-1       ld-1       ld-1       ld-1       ld-1      
## [631] ld-1       ld-1       ld-1       ld-1       ld-1       ld-1      
## [637] ld-1       ld-1       ld-1       ld-1       ld-1       ld-1      
## [643] ld-1       Ler-1      Ler-1      Ler-1      Ler-1      Ler-1     
## [649] Ler-1      Ler-1      Ler-1      Ler-1      Ler-1      Ler-1     
## [655] Ler-1      Ler-1      Ler-1      Ler-1      Ler-1      Ler-1     
## [661] Ler-1      Ler-1      Ler-1      Ler-1      Ler-1      Ler-1     
## [667] Ler-1      Ler-1      Ler-1      Ler-1      Ler-1      Ler-1     
## [673] Ler-1      Ler-1      Ler-1      Ler-1      Ler-1      Ler-1     
## [679] Ler-1      Ler-1      Ler-1      Ler-1      Ler-1      Ler-1     
## [685] Ler-1      Ler-1      Ler-1      Ler-1      Ler-1      Ler-1     
## [691] Ler-1      Ler-1      Ler-1      Ler-1      Ler-1      Ler-1     
## [697] Ler-1      Ler-1      Ler-1      Ler-1      Ler-1      Ler-1     
## [703] Ler-1      Ler-1      Ler-1      Ler-1      Ler-1      Ler-1     
## [709] Ler-1      Ler-1      Ler-1      prmt5 FRI  prmt5 FRI  prmt5 FRI 
## [715] prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI 
## [721] prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI 
## [727] prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI 
## [733] prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI 
## [739] prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI 
## [745] prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI 
## [751] prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI 
## [757] prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI 
## [763] prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI 
## [769] prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI 
## [775] prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI 
## [781] prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI 
## [787] prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI 
## [793] prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI 
## [799] prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI 
## [805] prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI 
## [811] prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI 
## [817] prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI 
## [823] prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI 
## [829] prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI  prmt5 FRI 
## [835] prmt5 FRI  prmt5 FRI  vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [841] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [847] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [853] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [859] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [865] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [871] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [877] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [883] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [889] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [895] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [901] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [907] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [913] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [919] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [925] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [931] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [937] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [943] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [949] vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI vin3-4 FRI
## [955] vin3-4 FRI vin3-4 FRI vin3-4 FRI
## 10 Levels: Ler-1 fca-6 Col Ama flc-3 FRI Col FRI ld-1 flk-1 fve-3 ... vin3-4 FRI

Maintenant que nous avons converti la variable ne facteur avec l’ordre des niveaux que nous voulons, nous pouvons l’utiliser pour représenter les variables catégoriques avec l’ordre que nous voulons dans un graphique:

mutate(expt1, genotype = factor(genotype, levels = c("Ler-1", "fca-6", "Col Ama", "flc-3 FRI", "Col FRI",
                                                     "ld-1", "flk-1", "fve-3", "prmt5 FRI","vin3-4 FRI"))) %>% 
  filter( temperature==22, day.length==16) %>%
  ggplot(aes(x=genotype, y=days.to.bolt, fill=fluctuation)) +
  geom_boxplot()

Nous pouvons aussi ordonner les génotypes en fonction de days.to.bolt. Pour cela nous utilisons la fonction fct_reorder() dans le package forcats (qui est inclus dans tidyverse)

  filter(expt1, temperature==22, day.length==16) %>% 
  mutate( genotype = fct_reorder(genotype, days.to.bolt)) %>% 
  ggplot(aes(x=genotype, y=days.to.bolt, fill=fluctuation)) +
  geom_boxplot()

Exercice 3

Représenter des violin plots de cauline.leaf.num pour les génotypes de background “Col”, colorés par la température et ce uniquement pour les plantes sans fluctuation de température et qui sont en jours longs (16 h).

Ordonnez les génotypes selon ces deux cas (un graphique par cas):

-1 Dans l’ordre suivant: “Col Ama”, “ld-1”, “fve-3”, “flk-1”

-2 Dans l’ordre de la valeur de cauline.leaf.num


Contrôle continu à faire pour la prochaine séance

A partir ce ce que nous avons vu aujourd’hui:

- Finissez la deuxième moitié du contrôle continu dont les instructions sont ici

- Déposez avant le 05/12/2025 à minuit sur Moodle le script R de la deuxième moitié du contrôle continu résultant des instructions à la fin des séances 4 et 6.


La semaine prochaine nous allons faire un examen blanc, vous demandant d’explorer un jeu de donnée. Il s’agira d’une mise en pratique des fonctions que nous avons vu jusqu’ici.

Afin de vous y préparer, nous vous recommandons de reprendre l’ensemble des cours et de vous exercer à refaire les exercices (sans avoir recours aux solutions si possible).

Lors de l’examen blanc (et de l’examen final) vous aurez accès au cours et à vos scripts. Vous allez être évalué sur votre capacité à utiliser les différentes fonctions et à comprendre leur utilité, et non sur de la connaissance pure.


Retour à la page d’accueil