Dplyr row_number(): Numrering av rader

Funktionen row_number() är enkel att använda. Den skapar en numerisk stigande sekvens för raderna i en data frame. Funktionen används ofta tillsammans med mutate() för att skapa en numerisk sekvens.

I detta kapitel kommer vi demonstrera funktionerna med hjälp av data som vi själva genererar direkt 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 skapar vi variabeln ID_nummer som är en numerisk sekvens längs hela dataframen:

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 skapar ånyo en numerisk sekvens men nu grupperad på 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

Notera ovan att den numeriska sekvensen är separat för varje namn. Vi kan addera ytterligare grupperingsvariabel, vilket vi gör genom att lägga till Diagnos som grupp:

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

Notera att radnumreringen är separat för varje Diagnos inom varje Namn.