Manipulering av Rader
Akkurat som kolonner, kan rader i en data frame også legges til eller fjernes.
Legge til enkeltstående rader
For å legge til en enkelt rad, kan du tilordne en ny oppføring til neste tilgjengelige radindeks (nrow(data) + 1
). Siden en data frame kan inneholde ulike typer verdier, må den nye raden gis som en liste (eller en data frame).
Som standard kan tekstverdier bli konvertert til faktorer når du oppretter data frames. Dette kan føre til problemer når du legger til nye rader. For å unngå dette, sett stringsAsFactors = FALSE
når du oppretter data framen.
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
Legge til flere rader
En annen metode for å legge til rader er å slå sammen to data frames med de samme kolonnene ved å bruke funksjonen merge()
. Dette gjør det mulig å legge til flere rader samtidig.
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)
Fjerne rader
For å fjerne rader, bruk negative indekser inne i hakeparenteser, som med matriser.
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
som inneholder informasjon om varer, priser og antall solgte enheter i en liten møbelbutikk.
Din oppgave er:
- Fjern raden med
'Dining chair'
(indeks 4) fra dataframenstore
. Tildel resultatet til variabelenstore
. - Legg til en ny rad i dataframen
store
ved å brukelist
-metoden med følgende data:
Item | Price | Sold |
---|---|---|
Kitchen cabinet | 70 | 67 |
- Skriv ut den endrede dataframen.
Løsning
Takk for tilbakemeldingene dine!
single
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår
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 av Rader
Sveip for å vise menyen
Akkurat som kolonner, kan rader i en data frame også legges til eller fjernes.
Legge til enkeltstående rader
For å legge til en enkelt rad, kan du tilordne en ny oppføring til neste tilgjengelige radindeks (nrow(data) + 1
). Siden en data frame kan inneholde ulike typer verdier, må den nye raden gis som en liste (eller en data frame).
Som standard kan tekstverdier bli konvertert til faktorer når du oppretter data frames. Dette kan føre til problemer når du legger til nye rader. For å unngå dette, sett stringsAsFactors = FALSE
når du oppretter data framen.
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
Legge til flere rader
En annen metode for å legge til rader er å slå sammen to data frames med de samme kolonnene ved å bruke funksjonen merge()
. Dette gjør det mulig å legge til flere rader samtidig.
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)
Fjerne rader
For å fjerne rader, bruk negative indekser inne i hakeparenteser, som med matriser.
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
som inneholder informasjon om varer, priser og antall solgte enheter i en liten møbelbutikk.
Din oppgave er:
- Fjern raden med
'Dining chair'
(indeks 4) fra dataframenstore
. Tildel resultatet til variabelenstore
. - Legg til en ny rad i dataframen
store
ved å brukelist
-metoden med følgende data:
Item | Price | Sold |
---|---|---|
Kitchen cabinet | 70 | 67 |
- Skriv ut den endrede dataframen.
Løsning
Takk for tilbakemeldingene dine!
single