library(tidyverse)

Pour sélectionner les lignes d’un tableau on utilise la fonction filter du package tidyverse. Le package permet également d’utiliser le pipe %>%.

Utilisation du pipe : %>%

\[ f(a) <=> a \,\text{ %>% }\, f()\]

Exemple :

colnames(iris) # Nom des variables

est équivalent à

iris %>% colnames() # Nom des variables

Selectionner : select()

Ex1. Condition variable numérique.

On sélectionne les observations pour lesquelles la taille des sépales est supérieure ou égale à 5. La table obtenue est affectée à l’objet iris_selection

iris_selection <- iris %>% filter(Sepal.Length>=5)
head(iris_selection)
## # A tibble: 6 × 5
##   Sepal.Length Sepal.Width Petal.Length Petal.Width Species
##          <dbl>       <dbl>        <dbl>       <dbl> <chr>  
## 1          5.1         3.5          1.4         0.2 setosa 
## 2          5           3.6          1.4         0.2 setosa 
## 3          5.4         3.9          1.7         0.4 setosa 
## 4          5           3.4          1.5         0.2 setosa 
## 5          5.4         3.7          1.5         0.2 setosa 
## 6          5.8         4            1.2         0.2 setosa

Ex2. Condition variable texte.

On sélectionne les observations de l’espèce virginica. La table obtenue est affectée à l’objet iris_selection.
NB1 : on met des guillemets pour désigner du texte.
NB2 : quand on teste une égalité de condition, il faut utiliser le double égal ==, c’est l’erreur la plus courante chez les jeunes utilisateurs de R.

iris_selection <- iris %>% filter(Species=="virginica")
head(iris_selection)
## # A tibble: 6 × 5
##   Sepal.Length Sepal.Width Petal.Length Petal.Width Species  
##          <dbl>       <dbl>        <dbl>       <dbl> <chr>    
## 1          6.3         3.3          6           2.5 virginica
## 2          5.8         2.7          5.1         1.9 virginica
## 3          7.1         3            5.9         2.1 virginica
## 4          6.3         2.9          5.6         1.8 virginica
## 5          6.5         3            5.8         2.2 virginica
## 6          7.6         3            6.6         2.1 virginica

Ex3. Conditions multiples.

On sélectionne les observations de l’espèce setosa si la largeur des sépales est supérieure à 3 ainsi que l’espèce versicolor. La table obtenue est affectée à l’objet iris_selection.

NB : liste d’opérateurs logique

Opérateurs dans R Def
& ET
| OU
== EGAL
> SUPERIEUR
>= SUPERIEUR ou EGAL
< INFERIEUR
<= INFERIEUR ou EGAL
is.na() EST MANQUANT
! DIFFERENT DE ≠
iris_selection <- iris %>% filter((Species=="setosa" & Sepal.Width>3) | Species=="versicolor")
head(iris_selection)
## # A tibble: 6 × 5
##   Sepal.Length Sepal.Width Petal.Length Petal.Width Species
##          <dbl>       <dbl>        <dbl>       <dbl> <chr>  
## 1          5.1         3.5          1.4         0.2 setosa 
## 2          4.7         3.2          1.3         0.2 setosa 
## 3          4.6         3.1          1.5         0.2 setosa 
## 4          5           3.6          1.4         0.2 setosa 
## 5          5.4         3.9          1.7         0.4 setosa 
## 6          4.6         3.4          1.4         0.3 setosa

Ex4. Enchainer les opérations.

On sélectionne les observations de l’espèce setosa. Puis on selectionnerles observations pour lesquelles la largeur des sépales est supérieure à 3. La table obtenue est affectée à l’objet iris_selection.

iris_selection <- iris %>% 
  filter(Species=="setosa") %>%
  filter(Sepal.Width>3)
head(iris_selection)
## # A tibble: 6 × 5
##   Sepal.Length Sepal.Width Petal.Length Petal.Width Species
##          <dbl>       <dbl>        <dbl>       <dbl> <chr>  
## 1          5.1         3.5          1.4         0.2 setosa 
## 2          4.7         3.2          1.3         0.2 setosa 
## 3          4.6         3.1          1.5         0.2 setosa 
## 4          5           3.6          1.4         0.2 setosa 
## 5          5.4         3.9          1.7         0.4 setosa 
## 6          4.6         3.4          1.4         0.3 setosa