Dplyr row_number(): Nummerering av rader

Funksjonen row_number() er enkel å bruke. Den lager en numerisk stigende sekvens for radene i en data frame. Funksjonen brukes ofte sammen med mutate() for å lage en numerisk sekvens.

I dette kapittelet skal vi demonstrere funksjonene ved hjelp av data som vi selv genererer direkte i R med funksjonen 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

Nå lager vi variabelen ID_nummer, som er en numerisk sekvens gjennom 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 lager igjen en numerisk sekvens, men nå gruppert etter 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

Legg merke til ovenfor at den numeriske sekvensen er separat for hvert navn. Vi kan legge til enda en grupperingsvariabel, noe vi gjør ved å legge til 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

Legg merke til at radnummereringen er separat for hver Diagnos innenfor hvert Namn.