Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Manipulering av Rader | Data Frames
R Introduksjon

bookManipulering 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).

Note
Merk

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

123456789
name <- 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
copy

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

123456789101112
name <- 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)
copy

Fjerne rader

For å fjerne rader, bruk negative indekser inne i hakeparenteser, som med matriser.

Eksempel

12345678
name <- 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, ]
copy
Oppgave

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:

  1. Fjern raden med 'Dining chair' (indeks 4) fra dataframen store. Tildel resultatet til variabelen store.
  2. Legg til en ny rad i dataframen store ved å bruke list-metoden med følgende data:
ItemPriceSold
Kitchen cabinet7067
  1. Skriv ut den endrede dataframen.

Løsning

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 5. Kapittel 6
single

single

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

Suggested prompts:

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?

close

Awesome!

Completion rate improved to 2.27

bookManipulering 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).

Note
Merk

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

123456789
name <- 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
copy

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

123456789101112
name <- 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)
copy

Fjerne rader

For å fjerne rader, bruk negative indekser inne i hakeparenteser, som med matriser.

Eksempel

12345678
name <- 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, ]
copy
Oppgave

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:

  1. Fjern raden med 'Dining chair' (indeks 4) fra dataframen store. Tildel resultatet til variabelen store.
  2. Legg til en ny rad i dataframen store ved å bruke list-metoden med følgende data:
ItemPriceSold
Kitchen cabinet7067
  1. Skriv ut den endrede dataframen.

Løsning

Switch to desktopBytt til skrivebordet for virkelighetspraksisFortsett der du er med et av alternativene nedenfor
Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 5. Kapittel 6
single

single

some-alt