Dplyr row_number(): Nummerering af rækker

Funktionen row_number() er nem at bruge. Den skaber en numerisk stigende sekvens for rækkerne i en data frame. Funktionen bruges ofte sammen med mutate() til at skabe en numerisk sekvens.

I dette kapitel vil vi demonstrere funktionerne ved hjælp af data, som vi selv genererer direkte i R med funktionen 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

Nu opretter vi variablen ID_nummer, som er en numerisk sekvens gennem hele data framen:

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

Vi opretter igen en numerisk sekvens, men nu grupperet efter 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

Bemærk ovenfor, at den numeriske sekvens er separat for hvert navn. Vi kan tilføje endnu en grupperingsvariabel, hvilket vi gør ved at tilføje Diagnos som gruppe:

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

Bemærk, at rækkenummereringen er separat for hver Diagnos inden for hvert Namn.