Retour à la page d’accueil




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

  1. Plantes qui ne sont pas du background Ler et qui ont été traitées avec une température fluctuante.
  2. Plantes qui ont fleuries (bolt) en moins de 57 jours et qui ont moins de 40 feuilles de rosette
  3. 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 fonction distinct()
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