2.2: Використання R для організації та маніпулювання даними
- Page ID
- 17659
Дані в таблиці\(\PageIndex{1}\) повинні нагадувати вам про кадр даних, спосіб організації даних у R, який ми ввели в главі 1. Тут ми дізнаємося, як створити фрейм даних, який містить дані в таблиці,\(\PageIndex{1}\) і дізнаємося, як ми можемо зробити нас з фрейму даних.
Створення кадру даних
Щоб створити фрейм даних, ми починаємо з створення векторів для кожної зі змінних. Зауважте, що букви
є константою в R, яка містить 26 малих літер латинського алфавіту: тут ми використовуємо лише перші шість літер для ідентифікаторів мішка.
bag_id = літери [1:6]
рік = c (2006, 2006, 2000, 2000, 1994, 1994)
вага = c (1,74, 1,74, 0,80, 0,80, 10,0, 10,0)
тип = c («арахіс», «арахіс», «звичайний», «звичайний», «звичайний», «звичайний»)
число_жовтий = c (2, 3, 1, 5, 56, 63
відсотки) t_red = c (27,8, 4,35, 22,7, 20,8, 23.0, 21.9)
всього = c (18, 23, 22, 24, 331, 333)
ранг = c («шостий», «четвертий», «п'ятий», «третій», «другий», «перший»)
Для створення фрейму даних ми використовуємо функцію Data.frame ()
R, передаючи їй імена наших векторів, кожен з яких повинен бути однакової довжини. У цій функції є можливість розглядати змінні, значення яких є символьними рядками, як факторами - інша назва категоріальної змінної - за допомогою аргументу StringsAsFactors
= TRUE
. Оскільки значення за замовчуванням для цього аргументу залежить від вашої версії R, корисно зробити ваш вибір явним, включивши його у ваш код, як ми робимо тут.
mm_data = data.frame (bag_id, рік, вага, тип, число_жовтий, процент_червоний, загальний, ранг, рядки як фактори = TRUE)
mm_data
bag_id рік вага тип номер_жовтий процент_червоний загальний ранг
1 в 2006 1.74 арахіс 2 27.80 18 шостий
2 б 2006 1,74 арахіс 3 4,35 23 четвертий
3 см 2000 0,80 рівнина 1 22.70 22 п'ята
4 д 2000 0,80 рівнина 5 20.80 24 третя
5 е 1994 10.00 рівнина 56 23.00 331 секунда
6 з 1994 10.00 рівнина 63 21.90 333 перший
Якщо ми вивчимо структуру цього набору даних за допомогою функції R str ()
, ми побачимо, що bag_id, тип та ранг - це фактори та рік, вага, number_yellow, percent_red та total arenumerical змінні, призначення, які узгоджуються з нашим попереднім аналізом даних.
str (мм_даних)
'data.frame': 6 об. з 8 змінних:
$ bag_id: Коефіцієнт ж/6 рівнів «a», «b», «c», «d»,..: 1 2 3 4 5 6
$ Рік: Номер 2006 2000 2000 1994...
Вага: кількість 1,74 1,74 0,8 0,8 10 10
Тип $: Фактор з 2 рівнями «арахіс», «звичайний»: 1 1 2 2 2 2
$ номер_жовтий: нум 2 3 1 5 56 63
$ процент_червоний: кількість 27.8 4,35 22.7 20,8 23 21.9
$ Всього: 18 23 22 24 331 333
$ ранг: Фактор ж/6 рівнів «п'ятий», «перший»,..: 5 3 1 6 4 2
Нарешті, ми можемо використовувати функцію як.factor ()
, щоб R розглядати числову змінну як категоричну змінну, як ми робимо тут протягом року. Чому ми можемо захотіти зробити це - тема, до якого ми повернемося в наступних розділах.
mm_year_as_factor = data.frame (bag_id, як.фактор (рік), процент_червоний, загальний)
str (мм_рік_я_фактор)
'data.frame': 6 об. з 4 змінних:
$ bag_id: Коефіцієнт ж/6 рівнів «a», «b», «c», «d»,..: 1 2 3 4 5 6
$ як.фактор.рік.: Фактор з 3 рівнями «1994", "2000",..: 3 3 2 2 1
$ процент_червоний: кількість 27.8 4,35 22.7 20,8 23 21.9
$ Всього: 18 23 22 24 331 33
Створення нового кадру даних шляхом підмноження існуючого кадру даних
У розділі 1.2 ми дізналися, як отримати окремі рядки або стовпці з кадру даних і призначити їх новому об'єкту. Тут ми дізнаємося, як використовувати більш гнучку функцію підмножини ()
R для виконання того ж самого. Тут, наприклад, ми отримуємо тільки дані для простих M&Ms.
plain_mm = підмножина (mm_data, тип == «звичайний»)
рівнин_мм
bag_id рік вага тип номер_жовтий процент_червоний загальний ранг
3 х 2000 0,8 рівнина 1 22,7 22 п'ята
4 д 2000 0,8 рівнина 5 20,8 24 третя
5 е 1994 10.0 рівнина 56 23,0 331 секунди
6 з 1994 10.0 рівнина 63 21,9 333 перший
Зауважте, що type == «plain»
використовує реляційний оператор для вибору лише тих рядків, у яких тип
змінної має значення plain
. Ось список реляційних операторів:
оператор | використання | значення |
---|---|---|
< | x < у | x менше, ніж у |
> | х > у | x більше, ніж у |
<= | х <= у | x менше або дорівнює y |
>= | х>= у | x більше або дорівнює y |
== | х == у | x точно дорівнює y |
! = | х! = у | x не дорівнює y |
Ми можемо рядити змінні разом за допомогою логічного & оператора.
mm_plain10 = підмножина (мм_даних, (вага == 10,0 & тип == «звичайний»))
мм_рівнин10
bag_id рік вага тип номер_жовтий процент_червоний загальний ранг
5 е 1994 10 рівнина 56 23,0 331 секунди
6 з 1994 10 рівнина 63 21,9 333 перший
Ми також можемо звузити кількість змінних, що повертаються, використовуючи аргумент subset ()
функції select
. У цьому прикладі ми виключаємо зразки, зібрані до 2000 року, і повертаємо лише рік, кількість жовтих M & Ms та відсоток червоних M & Ms.
mm_20xx = підмножина (мм_дані, рік >= 2000, виберіть = c (рік, число_жовтий, процент_червоний))
мм_20хх
число року_жовтий процент_червоний
1 2006 2 27.80
2 2006 3 4.35
3 2000 1 22.70
4 2000 5 20,80