Hantering 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).
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
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
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
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)
Ta bort rader
För att ta bort rader, använd negativa index inom hakparenteser, precis som med matriser.
Exempel
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 innehåller information om varor, deras priser och sålda kvantiteter i en liten möbelaffär.
Din uppgift är att:
- Ta bort raden med
'Dining chair'
(index 4) från dataframenstore
. Tilldela resultatet till variabelnstore
. - Lägg till en ny rad i dataframen
store
med hjälp avlist
-metoden med följande data:
Item | Price | Sold |
---|---|---|
Kitchen cabinet | 70 | 67 |
- Skriv ut den modifierade dataframen.
Lösning
Tack för dina kommentarer!
single
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal
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
Hantering 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).
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
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
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
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)
Ta bort rader
För att ta bort rader, använd negativa index inom hakparenteser, precis som med matriser.
Exempel
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 innehåller information om varor, deras priser och sålda kvantiteter i en liten möbelaffär.
Din uppgift är att:
- Ta bort raden med
'Dining chair'
(index 4) från dataframenstore
. Tilldela resultatet till variabelnstore
. - Lägg till en ny rad i dataframen
store
med hjälp avlist
-metoden med följande data:
Item | Price | Sold |
---|---|---|
Kitchen cabinet | 70 | 67 |
- Skriv ut den modifierade dataframen.
Lösning
Tack för dina kommentarer!
single