Dplyr row_number() : numérotation des lignes

La fonction row_number() est simple à utiliser. Elle crée une séquence numérique croissante pour les lignes d'un data frame. Elle s'emploie souvent avec mutate() pour créer une séquence numérique.

Dans ce chapitre, nous illustrerons ces fonctions à l'aide de données que nous générons nous-mêmes directement dans R avec la fonction tibble() :

my_data <- tibble(Namn = c("Per", "Per", "Per", "Eva", "Eva", "Zara", "Aziz", "Aziz","Aziz"),
                  Diagnos = c("I", "I", "C", "C", "D", "D", "D", "E", "E"))
my_data
 Namn  Diagnos
 Per   I
 Per   I
 Per   C
 Eva   C
 Eva   D
 Zara  D
 Aziz  D
 Aziz  E
 Aziz  E

Créons maintenant la variable ID_nummer, qui est une séquence numérique couvrant l'ensemble du data frame :

my_data |>
  mutate(ID_Nummer = row_number())
 Namn  Diagnos ID_Nummer
 Per   I               1
 Per   I               2
 Per   C               3
 Eva   C               4
 Eva   D               5
 Zara  D               6
 Aziz  D               7
 Aziz  E               8
 Aziz  E               9

Nous créons à nouveau une séquence numérique, mais cette fois groupée selon Namn :

 Namn  Diagnos ID_Nummer
 Per   I               1
 Per   I               2
 Per   C               3
 Eva   C               1
 Eva   D               2
 Zara  D               1
 Aziz  D               1
 Aziz  E               2
 Aziz  E               3

Remarquez ci-dessus que la séquence numérique est distincte pour chaque nom. Nous pouvons ajouter une variable de regroupement supplémentaire, ce que nous faisons en ajoutant Diagnos comme groupe :

my_data |>
  group_by(Namn, Diagnos) |>
  mutate(ID_Nummer = row_number())
 Namn  Diagnos ID_Nummer
 Per   I               1
 Per   I               2
 Per   C               1
 Eva   C               1
 Eva   D               1
 Zara  D               1
 Aziz  D               1
 Aziz  E               1
 Aziz  E               2

Notez que la numérotation des lignes est distincte pour chaque Diagnos au sein de chaque Namn.