Aujourd’hui nous allons voir comment:
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!
pivot_longer()
et
pivot_wider()
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:
- Utilisez la fonction
pivot_longer()
pour restructurer le tableau afin de faire un boxplot deblade.length.mm
ettotal.leaf.length.mm
, coloré parfluctuation
.
- Ajoutez aux boxplots des encoches indiquant l’étendue de l’intervalle de confiance à 95% de la médiane (voir l’option
notch
dansgeom_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.
- 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:
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.
*_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()
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
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
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.
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
ettotal.leaf.length.mm
pour chaquegenotype
aux différentesday.length
. Ajoutez aussi le nombre d’observations de chaque groupe
BONUS
Calculez chaquegenotype
en fonction de s’ils ont subit ou non unevernalization
: La moyenne du ratio deblade.length.mm
ettotal.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
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))
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 groupeExportez 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()`).
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 debackground
“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
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.