Retour à la page d’accueil


Aujourd’hui nous allons voir comment:

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!


Reformater des données avec pivot_longer() et pivot_wider()


Passer au format long avec pivot_longer()


Imaginons que nous souhaitons faire un boxplot pour le days.to.bolt et le days.to.flower.


Pour faire ce boxplor il nous faut réorganiser le tableau pour avoir les données pour ces deux mesures dans la même colonnes (trait) et une colonne indiquant s’il s’agit de la mesure de days.to.bolt ou days.to.flower (time.in.days).


Pour cela nous utilisons la fonction pivot_longer() qui permet de passer d’un format “wide” (large) à un format “long”.


Dans ce cas, le nom des colonnes sélectionnées servent à remplir les catégories dans la première colonne crée (en violet dans l’illustration). Et les valeurs de toutes ces colonnes sélectionnées vont remplir la deuxième colonne crée (en bleu dans l’illustration).


pivot_longer() à besoin de trois informations:

  • le nom de la nouvelle colonne contenant les catégories prises à parttir du nom des vieilles colonnes (dans notre cas trait) : names_to

  • le nom de la nouvelle colonne contenant les valeurs des anciennes colonnes (dans notre cas time.in.days) : values_to

  • le nom des anciennes colonnes que l’ont veut rassembler : cols

Voici comment restructurer notre tableau avec pivot_longer():

expt1_long <- pivot_longer(expt1, names_to = "trait", values_to = "time.in.days", cols=c(days.to.bolt, days.to.flower))

Nous pouvons maintenant faire notre boxplot

ggplot(expt1_long, aes(x=trait, y=time.in.days, color=genotype)) +
  geom_boxplot()
## Warning: Removed 83 rows containing non-finite values (`stat_boxplot()`).


Afin d’exporter ce graphique et de le sauver, nous utilisons la fonction ggsave():

ggplot(expt1_long, aes(x=trait, y=time.in.days, color=genotype)) +
  geom_boxplot()
## Warning: Removed 83 rows containing non-finite values (`stat_boxplot()`).

ggsave("boxplot_daystobolt_daystoflower_genotypes.pdf")
## Saving 7 x 5 in image
## Warning: Removed 83 rows containing non-finite values (`stat_boxplot()`).


Exercice 1:

  1. Utilisez la fonction pivot_longer() pour restructurer le tableau afin de faire un boxplot de blade.length.mm et total.leaf.length.mm, coloré par fluctuation.
  1. Ajoutez aux boxplots des encoches indiquant l’étendue de l’intervalle de confiance à 95% de la médiane (voir l’option notch dans geom_boxplot). Si les encoches sont étroite, il y a peu d’incertitude sur la médiane, si les encoches sont large, il y a une forte incertitude sur la médiane. Si les encoches de boxplots que nous comparons se chevauchent, alors nous ne pouvons pas conclure à une différence de médiane entre les médiane des deux groupes.
  1. Interprétez le graphique: Y a t’il un effet de la fluctuation de température sur la longueur de blade ou de la feuille? Pourquoi?

BONUS Optimisez le graphique obtenu en jouant sur le thème, les couleurs utilisée (visibles par des daltoniens), le titre et la valeur des axes et de la légende, de manière à avoir un graphique similaire au graphique suivant:


Passer au format large avec pivot_wider() ATTENTION, CETTE PARTIE NE SERA PAS VUE EN COURS FAUTE DE TEMPS MAIS VOUS ETES TRES FORTEMENT RECOMMANDE DE LA TRAVAILLER PAR VOUS MEME!!

Parfois, le format de vos données ne vous permet pas de faire l’analyse ou le graphique que vous voulez.

Par exemple, essayons de reproduire le graphique suivant extrait de Burghard et al 2015


Pour faire cette figure il nous faut une colonne avec le temps de floraison pour les plantes en conditions constante et une autre colonne avec le temps de floraison pour les plantes en condition variable. Le temps de floraison pour toutes les plantes sont dans la même colonne dans notre tableau. Par contre, l’information sur le type de traitement (variable ou constant) est dans une autre colonne. Ce n’est pas ce que nous voulons! Heureusement, nous pouvons utiliser la fonction pivot_wider() pour reformater notre tableau.

Pour y voir plus clair, ne gardons que les colonnes qui vont nous être utiles à la création du tableau:

expt1_subset <- select(expt1, plant_nb:vernalization, days.to.bolt)

Maintenant nous devons changer la structure de la table pour avoir une colonne avec le temps de floraison pour les plantes en conditions constante et une autre colonne avec le temps de floraison pour les plantes en condition variable. Un peu comme dans le schéma ci-dessous (pour aller du format “long” au format “wide”).


La fonction spread() a besoin de deux informations:

  • Le nom de la colonne qui va permettre de créer les noms de colonnes dans la nouvelle table. Dans notre cas fluctuation : names_from

  • Le nom de la colonne qui contient les valeurs qui vont remplir les nouvelles colonnes. Dans notre cas days.to.bolt : values_from

Voici comment restructurer notre tableau avec pivot_wider():

expt1_wide <- pivot_wider(expt1_subset, names_from =fluctuation,  values_from =  days.to.bolt)

Afin de pouvoir reproduire les couleurs du graphique, nous devons concaténer les colonnes temperature et day.length. Et nous pouvons enfin faire le graphique:

unite(expt1_wide, "treatment", temperature, day.length) %>% 
ggplot(aes(x=Con, y=Var, col=treatment, shape=treatment)) +
  geom_point()
## Warning: Removed 51 rows containing missing values (`geom_point()`).

Comme vous avez vu, changer la structure du tableau nous a permis de faire un graphique que nous n’aurions pas pu faire autrement. Cela peut aussi permettre de faire des analyses supplémentaires.




Combiner plusieurs tableaux en un (*_join())

Quand nous analysons des données, il n’est pas rare que nous ayons plusieurs tableaux contenant des informations de différents types mais qui sont liées les unes aux autres. Afin de répondre à certaines questions, nous devons parfois combiner ces différents tableau en un seul, à l’aide d’une certaine colonne.

Pour cela nous pouvons utiliser une des fonction de la famille *_join.

Toutes ces fonctions ont besoin de trois choses: - Le nom du premier tableau (celui de gauche) - Le nom du second tableau (celui de droite) - Le nom de la colonne qui est utilisée pour combiner les tableaux ensemble (il est aussi possible d’utiliser plus d’une colonne)

Afin de comprendre comment ces fonctions marchent, nous allons utiliser deux jeux de données qui sont déjà présent dans R:

  • band_members
band_members
## # A tibble: 3 × 2
##   name  band   
##   <chr> <chr>  
## 1 Mick  Stones 
## 2 John  Beatles
## 3 Paul  Beatles
  • band_instruments
band_instruments
## # A tibble: 3 × 2
##   name  plays 
##   <chr> <chr> 
## 1 John  guitar
## 2 Paul  bass  
## 3 Keith guitar

La fonction full_join(), permet de garder toutes les lignes et toutes les colonnes des deux tableaux dans le nouveau tableau créé en les combinant. Dans notre cas, pour avoir toutes les information sur le groupe de musique et l’instrument pour chaque musicien, nous utilisons:

full_join(band_members, band_instruments, by="name")
## # A tibble: 4 × 3
##   name  band    plays 
##   <chr> <chr>   <chr> 
## 1 Mick  Stones  <NA>  
## 2 John  Beatles guitar
## 3 Paul  Beatles bass  
## 4 Keith <NA>    guitar

Vous pouvez voir que quand le groupe de musique ou l’instrument d’un musicien est manquante, un ‘NA’ est utilisé à la place.

Regardons les autres fonctions de la famille *_join()

  • Pour garder les données uniquement pour les musiciens présents dans band_members (table de gauche dans la fonction), nous utilisons left_join():
left_join(band_members, band_instruments, by="name")
## # A tibble: 3 × 3
##   name  band    plays 
##   <chr> <chr>   <chr> 
## 1 Mick  Stones  <NA>  
## 2 John  Beatles guitar
## 3 Paul  Beatles bass
  • Pour garder les données uniquement pour les musiciens présents dans band_instruments (table de droite dans la fonction), nous utilisons right_join():
right_join(band_instruments, band_members, by="name")
## # A tibble: 3 × 3
##   name  plays  band   
##   <chr> <chr>  <chr>  
## 1 John  guitar Beatles
## 2 Paul  bass   Beatles
## 3 Mick  <NA>   Stones
  • Pour garder uniquement les musiciens qui sont les deux tableaux, nous utilisons inner_join():
inner_join(band_members, band_instruments, by="name")
## # A tibble: 2 × 3
##   name  band    plays 
##   <chr> <chr>   <chr> 
## 1 John  Beatles guitar
## 2 Paul  Beatles bass

Dans ce cas il n’y a pas de ‘NA’

Ces fonctions peuvent être utiles pour comparer de gros jeux de données :

  • inner_join() est l’équivalent de l’intersection entre deux jeux de données.

  • full_join() est l’équivalent de l’union de deux jeux de données.


Ajouter des statistiques descriptives à des graphiques

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 2:

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


Faire un graphique avec les statistiques descriptives

Maintenant que nous savons extraire des statistiques descriptives de nos données, nous pouvons les utiliser pour faire des graphiques.

Par exemple, faisont un graphique avec la moyenne et la médiane du temps de floraison pour les différents génotypes:

group_by(expt1, genotype) %>% 
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)) %>% 
  pivot_longer(names_to ="stat_type",values_to ="stat_days_to_flower", cols = c(mean.days.flower,median.days.flower)) %>% 
  ggplot(aes(x=stat_type,y=stat_days_to_flower, col=genotype))+
  geom_point(size=2)

Afin de voir le lien entre la moyenne et la médiane pour chaque génotype, nous pouvons ajouter une ligne les reliant avec geom_line. Attention pour cela nous devons ajouter dans aes() la variable par laquelle les points sont regroupés en utilisant group=

group_by(expt1, genotype) %>% 
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)) %>% 
  pivot_longer(names_to = "stat_type",values_to = "stat_days_to_flower", 
               cols=c(mean.days.flower,median.days.flower)) %>% 
  ggplot(aes(x=stat_type,y=stat_days_to_flower, col=genotype))+
  geom_point(size=2) +
  geom_line(aes(group=genotype))

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 values (`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 values (`stat_boxplot()`).


Exercice 3

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 4.


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 values (`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 4

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 26/11/2022 à 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 5.


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