Маніпулювання Рядками
Тепер розглянемо, як додавати та видаляти рядки. Розглянемо два методи. Перший більше підходить для додавання одного рядка.
Метод полягає у присвоєнні нового рядка індексу, що дорівнює кількості рядків плюс один у наявному датафреймі (щоб отримати кількість рядків, використовуйте функцію nrow()
). Пам’ятайте, що у векторах не можна зберігати дані різних типів. Тому потрібно присвоювати або датафрейм, або список з новими значеннями. Не хвилюйтеся, якщо ви ще не знаєте, що таке списки. Простими словами, це як вектор, який дозволяє зберігати дані різних типів. Давайте це проілюструємо. Початковий датафрейм наведено нижче.
name age gender Job
1 Alex 24 M Teacher
2 Julia 43 F Doctor
3 Finn 32 M Manager
123456789# Creating a data frame 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) # Adding new row test[nrow(test) + 1, ] <- list('Angela', 35, 'F', 'Accountant') test # Output data frame
Примітка
За замовчуванням при зміні data frame будь-які нові рядкові значення у списку автоматично перетворюються на фактори. Щоб запобігти цьому автоматичному перетворенню, слід вказати параметр
stringsAsFactors = FALSE
під час створення data frame. Цей підхід слід застосовувати щоразу, коли ви змінюєте рядки у data frame.
Це можна зробити, використовуючи новий data frame та функцію merge
. Для цього методу потрібні однакові назви стовпців і встановлення необхідних параметрів (all = T
).
1234567891011name <- 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) test[nrow(test) + 1, ] <- list('Angela', 35, 'F', 'Accountant') # Data of new person as data frame new_person <- data.frame('Angela', 35, 'F', 'Accountant') colnames(new_person) <- colnames(test) # Set column names merge(test, new_person, all = T) # Merge data frames
Як видно, результати ідентичні. Щоб видалити рядки з data frame, використовуйте квадратні дужки та поставте мінус перед індексом рядка. Наприклад, test[-1,]
видалить перший рядок (так само, як і для матриць).
Swipe to start coding
Продовжимо працювати з датафреймом store
.
- Видалити рядок
'Dining chair'
(індекс 4) з датафреймуstore
. Переприсвоїти результат зміннійstore
. - Додати новий рядок до датафрейму
store
за допомогою підходу зlist
, використовуючи наведені нижче дані.
Item | Price | Sold |
---|---|---|
Kitchen Cabinet | 70 | 67 |
Вивести змінений датафрейм.
Рішення
Дякуємо за ваш відгук!
single
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Awesome!
Completion rate improved to 5.56
Маніпулювання Рядками
Свайпніть щоб показати меню
Тепер розглянемо, як додавати та видаляти рядки. Розглянемо два методи. Перший більше підходить для додавання одного рядка.
Метод полягає у присвоєнні нового рядка індексу, що дорівнює кількості рядків плюс один у наявному датафреймі (щоб отримати кількість рядків, використовуйте функцію nrow()
). Пам’ятайте, що у векторах не можна зберігати дані різних типів. Тому потрібно присвоювати або датафрейм, або список з новими значеннями. Не хвилюйтеся, якщо ви ще не знаєте, що таке списки. Простими словами, це як вектор, який дозволяє зберігати дані різних типів. Давайте це проілюструємо. Початковий датафрейм наведено нижче.
name age gender Job
1 Alex 24 M Teacher
2 Julia 43 F Doctor
3 Finn 32 M Manager
123456789# Creating a data frame 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) # Adding new row test[nrow(test) + 1, ] <- list('Angela', 35, 'F', 'Accountant') test # Output data frame
Примітка
За замовчуванням при зміні data frame будь-які нові рядкові значення у списку автоматично перетворюються на фактори. Щоб запобігти цьому автоматичному перетворенню, слід вказати параметр
stringsAsFactors = FALSE
під час створення data frame. Цей підхід слід застосовувати щоразу, коли ви змінюєте рядки у data frame.
Це можна зробити, використовуючи новий data frame та функцію merge
. Для цього методу потрібні однакові назви стовпців і встановлення необхідних параметрів (all = T
).
1234567891011name <- 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) test[nrow(test) + 1, ] <- list('Angela', 35, 'F', 'Accountant') # Data of new person as data frame new_person <- data.frame('Angela', 35, 'F', 'Accountant') colnames(new_person) <- colnames(test) # Set column names merge(test, new_person, all = T) # Merge data frames
Як видно, результати ідентичні. Щоб видалити рядки з data frame, використовуйте квадратні дужки та поставте мінус перед індексом рядка. Наприклад, test[-1,]
видалить перший рядок (так само, як і для матриць).
Swipe to start coding
Продовжимо працювати з датафреймом store
.
- Видалити рядок
'Dining chair'
(індекс 4) з датафреймуstore
. Переприсвоїти результат зміннійstore
. - Додати новий рядок до датафрейму
store
за допомогою підходу зlist
, використовуючи наведені нижче дані.
Item | Price | Sold |
---|---|---|
Kitchen Cabinet | 70 | 67 |
Вивести змінений датафрейм.
Рішення
Дякуємо за ваш відгук!
single