Exercice 1 : Sélectionnez les colonnes qui contiennent des données mesurées en mm
select(expt1, contains("mm"))
## # A tibble: 957 x 2
## blade.length.mm total.leaf.length.mm
## <dbl> <dbl>
## 1 12.9 21.1
## 2 10.5 19.1
## 3 13.2 23.4
## 4 14.6 27.2
## 5 13.3 20.4
## 6 14.7 25.3
## 7 13 23.2
## 8 17.8 31.3
## 9 20.7 33.1
## 10 19.4 33.2
## # … with 947 more rows
BONUS:
1. Sélectionnez les colonnes dont le titre finit par “bolt”
Aide: Regardez les exemples dans l’aide de R ou cherchez dans google
# En tapant "R tidyverse select column that ends with a specific text" dans google, le 1er site (https://dplyr.tidyverse.org/reference/select.html) indique d'utiliser "ends_with" dans la fonction select
select(expt1, ends_with("bolt"))
## # A tibble: 957 x 2
## bolt days.to.bolt
## <chr> <dbl>
## 1 Y 28
## 2 Y 29
## 3 Y 31
## 4 Y 31
## 5 Y 32
## 6 Y 33
## 7 Y 34
## 8 Y 35
## 9 Y 69
## 10 Y 72
## # … with 947 more rows
> 2. Sélectionnez les colonnes qui ne sont pas plant_nb
et genotype
select(expt1, -plant_nb, -genotype)
## # A tibble: 957 x 13
## background temperature fluctuation day.length vernalization bolt.survival
## <chr> <dbl> <chr> <dbl> <chr> <chr>
## 1 Col 12 Con 16 NV Y
## 2 Col 12 Con 16 NV Y
## 3 Col 12 Con 16 NV Y
## 4 Col 12 Con 16 NV Y
## 5 Col 12 Con 16 NV Y
## 6 Col 12 Con 16 NV Y
## 7 Col 12 Con 16 NV Y
## 8 Col 12 Con 16 NV Y
## 9 Col 12 Con 8 NV Y
## 10 Col 12 Con 8 NV Y
## # … with 947 more rows, and 7 more variables: bolt <chr>, days.to.bolt <dbl>,
## # days.to.flower <dbl>, rosette.leaf.num <dbl>, cauline.leaf.num <dbl>,
## # blade.length.mm <dbl>, total.leaf.length.mm <dbl>
Exercice 2: Filtrez les données pour garder les plantes selon les 3 cas de figures suivant (indépendants les uns des autres):
- Plantes qui ne sont pas du background Ler et qui ont été traitées avec une température fluctuante.
- Plantes qui ont fleuries (bolt) en moins de 57 jours et qui ont moins de 40 feuilles de rosette
- Plantes du génotype fca-6 pour qui le blade.ratio n’est pas manquant
# 1. Filtrez les plantes qui ne sont pas du background Ler et qui ont été traitées avec une température fluctuante.
filter(expt1, background!="Ler" & fluctuation=="Var")
## # A tibble: 389 x 15
## plant_nb genotype background temperature fluctuation day.length vernalization
## <dbl> <chr> <chr> <dbl> <chr> <dbl> <chr>
## 1 1 Col Ama Col 12 Var 16 NV
## 2 2 Col Ama Col 12 Var 16 NV
## 3 3 Col Ama Col 12 Var 16 NV
## 4 4 Col Ama Col 12 Var 16 NV
## 5 5 Col Ama Col 12 Var 16 NV
## 6 6 Col Ama Col 12 Var 16 NV
## 7 7 Col Ama Col 12 Var 16 NV
## 8 8 Col Ama Col 12 Var 16 NV
## 9 1 Col Ama Col 12 Var 8 NV
## 10 2 Col Ama Col 12 Var 8 NV
## # … with 379 more rows, and 8 more variables: bolt.survival <chr>, bolt <chr>,
## # days.to.bolt <dbl>, days.to.flower <dbl>, rosette.leaf.num <dbl>,
## # cauline.leaf.num <dbl>, blade.length.mm <dbl>, total.leaf.length.mm <dbl>
# 2. Filtrez les plantes qui ont fleuries (bolt) en moins de 57 jours et qui ont moins de 40 feuilles.
filter(expt1, days.to.bolt<57 & rosette.leaf.num<40)
## # A tibble: 389 x 15
## plant_nb genotype background temperature fluctuation day.length vernalization
## <dbl> <chr> <chr> <dbl> <chr> <dbl> <chr>
## 1 1 Col Ama Col 12 Con 16 NV
## 2 2 Col Ama Col 12 Con 16 NV
## 3 3 Col Ama Col 12 Con 16 NV
## 4 4 Col Ama Col 12 Con 16 NV
## 5 5 Col Ama Col 12 Con 16 NV
## 6 6 Col Ama Col 12 Con 16 NV
## 7 7 Col Ama Col 12 Con 16 NV
## 8 8 Col Ama Col 12 Con 16 NV
## 9 1 Col Ama Col 12 Var 16 NV
## 10 2 Col Ama Col 12 Var 16 NV
## # … with 379 more rows, and 8 more variables: bolt.survival <chr>, bolt <chr>,
## # days.to.bolt <dbl>, days.to.flower <dbl>, rosette.leaf.num <dbl>,
## # cauline.leaf.num <dbl>, blade.length.mm <dbl>, total.leaf.length.mm <dbl>
# 3. Filtrez les plantes du génotype fca-6 pour qui le blade.length.mm n'est pas manquant
filter(expt1, genotype=="fca-6" & !is.na(blade.length.mm))
## # A tibble: 44 x 15
## plant_nb genotype background temperature fluctuation day.length vernalization
## <dbl> <chr> <chr> <dbl> <chr> <dbl> <chr>
## 1 1 fca-6 Ler 12 Con 16 NV
## 2 2 fca-6 Ler 12 Con 16 NV
## 3 3 fca-6 Ler 12 Con 16 NV
## 4 4 fca-6 Ler 12 Con 16 NV
## 5 5 fca-6 Ler 12 Con 16 NV
## 6 6 fca-6 Ler 12 Con 16 NV
## 7 7 fca-6 Ler 12 Con 16 NV
## 8 8 fca-6 Ler 12 Con 16 NV
## 9 1 fca-6 Ler 12 Con 8 NV
## 10 2 fca-6 Ler 12 Con 8 NV
## # … with 34 more rows, and 8 more variables: bolt.survival <chr>, bolt <chr>,
## # days.to.bolt <dbl>, days.to.flower <dbl>, rosette.leaf.num <dbl>,
## # cauline.leaf.num <dbl>, blade.length.mm <dbl>, total.leaf.length.mm <dbl>
BONUS:
Filtrez les données pour garder les lignes pour lesquelles le background contient Col
Sauvez le résultat dans un nouvel objet et vérifier quelles valeurs distinctes sont dans la colonne background en utilisant le fonctiondistinct()
Aide: Faites un recherche sur google pour trouver le résultat
# Il existe plusieurs solutions. En tapant "R tidyverse filter lines containing text" dans google
# Le 2eme site (https://www.statology.org/filter-rows-that-contain-string-dplyr/) propose de faire
expt1_col_background <- filter(expt1, grepl("Col", background))
distinct(expt1_col_background,background)
## # A tibble: 2 x 1
## background
## <chr>
## 1 Col
## 2 Col FRI
# Le 4eme site (https://sebastiansauer.github.io/dplyr_filter/) propose de faire
expt1_col_background2 <- filter(expt1, str_detect(background, "Col"))
distinct(expt1_col_background2,background)
## # A tibble: 2 x 1
## background
## <chr>
## 1 Col
## 2 Col FRI