Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Маніпулювання Рядками | Фрейми Даних
Вступ до R: Частина II

bookМаніпулювання Рядками

Тепер розглянемо, як додавати та видаляти рядки. Розглянемо два методи. Перший більше підходить для додавання одного рядка.

Метод полягає у присвоєнні нового рядка індексу, що дорівнює кількості рядків плюс один у наявному датафреймі (щоб отримати кількість рядків, використовуйте функцію 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
copy

Примітка

За замовчуванням при зміні data frame будь-які нові рядкові значення у списку автоматично перетворюються на фактори. Щоб запобігти цьому автоматичному перетворенню, слід вказати параметр stringsAsFactors = FALSE під час створення data frame. Цей підхід слід застосовувати щоразу, коли ви змінюєте рядки у data frame.

Це можна зробити, використовуючи новий data frame та функцію merge. Для цього методу потрібні однакові назви стовпців і встановлення необхідних параметрів (all = T).

1234567891011
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) 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
copy

Як видно, результати ідентичні. Щоб видалити рядки з data frame, використовуйте квадратні дужки та поставте мінус перед індексом рядка. Наприклад, test[-1,] видалить перший рядок (так само, як і для матриць).

Завдання

Swipe to start coding

Продовжимо працювати з датафреймом store.

  1. Видалити рядок 'Dining chair' (індекс 4) з датафрейму store. Переприсвоїти результат змінній store.
  2. Додати новий рядок до датафрейму store за допомогою підходу з list, використовуючи наведені нижче дані.
ItemPriceSold
Kitchen Cabinet7067

Вивести змінений датафрейм.

Рішення

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 2. Розділ 6
single

single

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

close

Awesome!

Completion rate improved to 5.56

bookМаніпулювання Рядками

Свайпніть щоб показати меню

Тепер розглянемо, як додавати та видаляти рядки. Розглянемо два методи. Перший більше підходить для додавання одного рядка.

Метод полягає у присвоєнні нового рядка індексу, що дорівнює кількості рядків плюс один у наявному датафреймі (щоб отримати кількість рядків, використовуйте функцію 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
copy

Примітка

За замовчуванням при зміні data frame будь-які нові рядкові значення у списку автоматично перетворюються на фактори. Щоб запобігти цьому автоматичному перетворенню, слід вказати параметр stringsAsFactors = FALSE під час створення data frame. Цей підхід слід застосовувати щоразу, коли ви змінюєте рядки у data frame.

Це можна зробити, використовуючи новий data frame та функцію merge. Для цього методу потрібні однакові назви стовпців і встановлення необхідних параметрів (all = T).

1234567891011
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) 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
copy

Як видно, результати ідентичні. Щоб видалити рядки з data frame, використовуйте квадратні дужки та поставте мінус перед індексом рядка. Наприклад, test[-1,] видалить перший рядок (так само, як і для матриць).

Завдання

Swipe to start coding

Продовжимо працювати з датафреймом store.

  1. Видалити рядок 'Dining chair' (індекс 4) з датафрейму store. Переприсвоїти результат змінній store.
  2. Додати новий рядок до датафрейму store за допомогою підходу з list, використовуючи наведені нижче дані.
ItemPriceSold
Kitchen Cabinet7067

Вивести змінений датафрейм.

Рішення

Switch to desktopПерейдіть на комп'ютер для реальної практикиПродовжуйте з того місця, де ви зупинились, використовуючи один з наведених нижче варіантів
Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 2. Розділ 6
single

single

some-alt