Manipulering af Rækker
Ligesom kolonner kan rækker i et data frame også tilføjes eller fjernes.
Tilføjelse af enkelte rækker
For at tilføje en enkelt række kan du tildele en ny post til det næste tilgængelige rækkeindeks (nrow(data) + 1
). Da et data frame kan indeholde forskellige typer værdier, skal den nye række angives som en liste (eller et data frame).
Som standard kan tekstværdier blive konverteret til faktorer ved oprettelse af data frames. Dette kan give problemer ved tilføjelse af nye rækker. For at undgå dette skal du sætte stringsAsFactors = FALSE
ved oprettelse af data frame.
Eksempel
123456789name <- c("Alex", "Julia", "Finn") age <- c(24, 43, 32) gender <- c("M", "F", "M") job <- c('Teacher', 'Doctor', 'Manager') test <- data.frame(name, age, gender, job, stringsAsFactors = FALSE) # Add a new row test[nrow(test) + 1, ] <- list('Angela', 35, 'F', 'Accountant') test
Tilføjelse af flere rækker
En anden metode til at tilføje rækker er ved at sammenflette to data frames med de samme kolonner ved hjælp af funktionen merge()
. Dette gør det muligt at tilføje flere rækker på én gang.
Eksempel
123456789101112name <- c("Alex", "Julia", "Finn") age <- c(24, 43, 32) gender <- c("M", "F", "M") job <- c('Teacher', 'Doctor', 'Manager') test <- data.frame(name, age, gender, job, stringsAsFactors = FALSE) # New row as data a frame new_person <- data.frame('Angela', 35, 'F', 'Accountant') colnames(new_person) <- colnames(test) # Merge merge(test, new_person, all = T)
Fjernelse af rækker
For at fjerne rækker bruges negative indekser i kantede parenteser, ligesom med matricer.
Eksempel
12345678name <- c("Alex", "Julia", "Finn") age <- c(24, 43, 32) gender <- c("M", "F", "M") job <- c('Teacher', 'Doctor', 'Manager') test <- data.frame(name, age, gender, job, stringsAsFactors = FALSE) # Remove a row test[-1, ]
Swipe to start coding
Du har en data frame store
, der indeholder information om varer, deres priser og solgte mængder i en lille møbelforretning.
Din opgave er:
- Fjern rækken med
'Dining chair'
(indeks 4) fra data framenstore
. Tildel resultatet til variablenstore
. - Tilføj en ny række til data framen
store
ved at brugelist
-metoden med følgende data:
Item | Price | Sold |
---|---|---|
Kitchen cabinet | 70 | 67 |
- Udskriv den ændrede data frame.
Løsning
Tak for dine kommentarer!
single
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
Can you explain how the merge function works for adding rows?
What happens if the columns in the two data frames don't match?
How do I remove multiple rows at once from a data frame?
Awesome!
Completion rate improved to 2.27
Manipulering af Rækker
Stryg for at vise menuen
Ligesom kolonner kan rækker i et data frame også tilføjes eller fjernes.
Tilføjelse af enkelte rækker
For at tilføje en enkelt række kan du tildele en ny post til det næste tilgængelige rækkeindeks (nrow(data) + 1
). Da et data frame kan indeholde forskellige typer værdier, skal den nye række angives som en liste (eller et data frame).
Som standard kan tekstværdier blive konverteret til faktorer ved oprettelse af data frames. Dette kan give problemer ved tilføjelse af nye rækker. For at undgå dette skal du sætte stringsAsFactors = FALSE
ved oprettelse af data frame.
Eksempel
123456789name <- c("Alex", "Julia", "Finn") age <- c(24, 43, 32) gender <- c("M", "F", "M") job <- c('Teacher', 'Doctor', 'Manager') test <- data.frame(name, age, gender, job, stringsAsFactors = FALSE) # Add a new row test[nrow(test) + 1, ] <- list('Angela', 35, 'F', 'Accountant') test
Tilføjelse af flere rækker
En anden metode til at tilføje rækker er ved at sammenflette to data frames med de samme kolonner ved hjælp af funktionen merge()
. Dette gør det muligt at tilføje flere rækker på én gang.
Eksempel
123456789101112name <- c("Alex", "Julia", "Finn") age <- c(24, 43, 32) gender <- c("M", "F", "M") job <- c('Teacher', 'Doctor', 'Manager') test <- data.frame(name, age, gender, job, stringsAsFactors = FALSE) # New row as data a frame new_person <- data.frame('Angela', 35, 'F', 'Accountant') colnames(new_person) <- colnames(test) # Merge merge(test, new_person, all = T)
Fjernelse af rækker
For at fjerne rækker bruges negative indekser i kantede parenteser, ligesom med matricer.
Eksempel
12345678name <- c("Alex", "Julia", "Finn") age <- c(24, 43, 32) gender <- c("M", "F", "M") job <- c('Teacher', 'Doctor', 'Manager') test <- data.frame(name, age, gender, job, stringsAsFactors = FALSE) # Remove a row test[-1, ]
Swipe to start coding
Du har en data frame store
, der indeholder information om varer, deres priser og solgte mængder i en lille møbelforretning.
Din opgave er:
- Fjern rækken med
'Dining chair'
(indeks 4) fra data framenstore
. Tildel resultatet til variablenstore
. - Tilføj en ny række til data framen
store
ved at brugelist
-metoden med følgende data:
Item | Price | Sold |
---|---|---|
Kitchen cabinet | 70 | 67 |
- Udskriv den ændrede data frame.
Løsning
Tak for dine kommentarer!
single