La fonction slice() sélectionne des lignes (observations) en fonction de leur position. Elle permet de sélectionner, de supprimer ou de dupliquer des lignes. slice() dispose des fonctions auxiliaires suivantes :
Fonctions auxiliaires (helper functions) :
slice_head()etslice_tail()sélectionnent respectivement les premières et les dernières lignes.slice_sample()sélectionne des lignes de façon aléatoire.slice_min()etslice_max()sélectionnent les lignes présentant les valeurs les plus élevées ou les plus faibles d'une variable.
Ce chapitre utilise les données mpg pour illustrer slice().
library(tidyverse)
data(mpg)Commençons par sélectionner les 10 premières lignes :
mpg |>
slice(1:10) manufacturer model displ year cyl trans drv cty hwy fl class
1 audi a4 1.8 1999 4 auto(l5) f 18 29 p compact
2 audi a4 1.8 1999 4 manual(m5) f 21 29 p compact
3 audi a4 2 2008 4 manual(m6) f 20 31 p compact
4 audi a4 2 2008 4 auto(av) f 21 30 p compact
5 audi a4 2.8 1999 6 auto(l5) f 16 26 p compact
6 audi a4 2.8 1999 6 manual(m5) f 18 26 p compact
7 audi a4 3.1 2008 6 auto(av) f 18 27 p compact
8 audi a4 quattro 1.8 1999 4 manual(m5) 4 18 26 p compact
9 audi a4 quattro 1.8 1999 4 auto(l5) 4 16 25 p compact
10 audi a4 quattro 2 2008 4 manual(m6) 4 20 28 p compactSuppression des 10 premières lignes de mpg :
mpg |>
slice(-(1:10))## A tibble: 224 × 11
manufacturer model displ year cyl trans drv cty hwy fl class
1 audi a4 quattro 2 2008 4 auto(s6) 4 19 27 p compact
2 audi a4 quattro 2.8 1999 6 auto(l5) 4 15 25 p compact
3 audi a4 quattro 2.8 1999 6 manual(m5) 4 17 25 p compact
4 audi a4 quattro 3.1 2008 6 auto(s6) 4 17 25 p compact
5 audi a4 quattro 3.1 2008 6 manual(m6) 4 15 25 p compact
6 audi a6 quattro 2.8 1999 6 auto(l5) 4 15 24 p midsize
7 audi a6 quattro 3.1 2008 6 auto(s6) 4 17 25 p midsize
8 audi a6 quattro 4.2 2008 8 auto(s6) 4 16 23 p midsize
9 chevrolet c1500 suburban 2wd 5.3 2008 8 auto(l4) r 14 20 r suv
10 chevrolet c1500 suburban 2wd 5.3 2008 8 auto(l4) r 11 15 e suvExemples avec les fonctions auxiliaires :
## 5 dernières lignes
mpg |>
slice_tail(n = 5)
## 5 premières lignes
mpg |>
slice_head(n = 5)
## Sélectionner les lignes ayant les 20 valeurs de displ les plus élevées
mpg |>
slice_max(displ, n = 20)
## Sélectionner les lignes ayant les 20 valeurs de displ les plus faibles
mpg |>
slice_min(displ, n = 20)La fonction filter() sert à filtrer des lignes à l'aide de conditions plutôt que par position. Voir le chapitre dplyr filter(). Il est toutefois possible de sélectionner des lignes par position avec filter(), comme le montre l'exemple suivant :
## Sélectionner la ligne 4
mpg |>
filter(row_number() == 4)