Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Hantering av Rader | Data Frames
Introduktion till R

bookHantering av Rader

Precis som kolumner kan rader i en data frame också läggas till eller tas bort.

Lägga till enskilda rader

För att lägga till en enskild rad kan du tilldela en ny post till nästa tillgängliga radindex (nrow(data) + 1). Eftersom en data frame kan innehålla olika typer av värden måste den nya raden anges som en lista (eller en data frame).

Note
Notera

Som standard kan textvärden konverteras till faktorer när data frames skapas. Detta kan orsaka problem vid tillägg av nya rader. För att undvika detta, ange stringsAsFactors = FALSE när du skapar data frame.

Exempel

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

Lägga till flera rader

Ett annat sätt att lägga till rader är att sammanfoga två data frames med samma kolumner med hjälp av funktionen merge(). Detta gör det möjligt att lägga till flera rader samtidigt.

Exempel

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

Ta bort rader

För att ta bort rader, använd negativa index inom hakparenteser, precis som med matriser.

Exempel

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
Uppgift

Swipe to start coding

Du har en data frame store som innehåller information om varor, deras priser och sålda kvantiteter i en liten möbelaffär.

Din uppgift är att:

  1. Ta bort raden med 'Dining chair' (index 4) från dataframen store. Tilldela resultatet till variabeln store.
  2. Lägg till en ny rad i dataframen store med hjälp av list-metoden med följande data:
ItemPriceSold
Kitchen cabinet7067
  1. Skriv ut den modifierade dataframen.

Lösning

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 5. Kapitel 6
single

single

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

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

bookHantering av Rader

Svep för att visa menyn

Precis som kolumner kan rader i en data frame också läggas till eller tas bort.

Lägga till enskilda rader

För att lägga till en enskild rad kan du tilldela en ny post till nästa tillgängliga radindex (nrow(data) + 1). Eftersom en data frame kan innehålla olika typer av värden måste den nya raden anges som en lista (eller en data frame).

Note
Notera

Som standard kan textvärden konverteras till faktorer när data frames skapas. Detta kan orsaka problem vid tillägg av nya rader. För att undvika detta, ange stringsAsFactors = FALSE när du skapar data frame.

Exempel

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

Lägga till flera rader

Ett annat sätt att lägga till rader är att sammanfoga två data frames med samma kolumner med hjälp av funktionen merge(). Detta gör det möjligt att lägga till flera rader samtidigt.

Exempel

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

Ta bort rader

För att ta bort rader, använd negativa index inom hakparenteser, precis som med matriser.

Exempel

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
Uppgift

Swipe to start coding

Du har en data frame store som innehåller information om varor, deras priser och sålda kvantiteter i en liten möbelaffär.

Din uppgift är att:

  1. Ta bort raden med 'Dining chair' (index 4) från dataframen store. Tilldela resultatet till variabeln store.
  2. Lägg till en ny rad i dataframen store med hjälp av list-metoden med följande data:
ItemPriceSold
Kitchen cabinet7067
  1. Skriv ut den modifierade dataframen.

Lösning

Switch to desktopByt till skrivbordet för praktisk övningFortsätt där du är med ett av alternativen nedan
Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 5. Kapitel 6
single

single

some-alt