Функцию Gather () из пакета tidyr можно использовать для «сбора» пары «ключ-значение» по нескольким столбцам.
Эта функция использует следующий базовый синтаксис:
собрать (данные, ключевое значение, …)
куда:
- data : Имя фрейма данных
- key : имя ключевого столбца для создания
- value : Имя столбца значений для создания
- … : Укажите, из каких столбцов следует собирать данные.
В следующих примерах показано, как использовать эту функцию на практике.
Пример 1. Сбор значений из двух столбцов
Предположим, у нас есть следующий фрейм данных в R:
#create data frame
df <- data.frame(player=c('A', 'B', 'C', 'D'),
year1=c(12, 15, 19, 19),
year2=c(22, 29, 18, 12))
#view data frame
df
player year1 year2
1 A 12 22
2 B 15 29
3 C 19 18
4 D 19 12
Мы можем использовать функцию Gather() для создания двух новых столбцов с именами «год» и «точки» следующим образом:
library(tidyr)
#gather data from columns 2 and 3
gather(df, key=" year", value=" points", 2:3)
player year points
1 A year1 12
2 B year1 15
3 C year1 19
4 D year1 19
5 A year2 22
6 B year2 29
7 C year2 18
8 D year2 12
Пример 2. Сбор значений из более чем двух столбцов
Предположим, у нас есть следующий фрейм данных в R:
#create data frame
df2 <- data.frame(player=c('A', 'B', 'C', 'D'),
year1=c(12, 15, 19, 19),
year2=c(22, 29, 18, 12),
year3=c(17, 17, 22, 25))
#view data frame
df2
player year1 year2 year3
1 A 12 22 17
2 B 15 29 17
3 C 19 18 22
4 D 19 12 25
Мы можем использовать функцию Gather() , чтобы «собрать» значения из столбцов 2, 3 и 4 в два новых столбца с именами «год» и «точки» следующим образом:
library(tidyr)
#gather data from columns 2, 3, and 4
gather(df, key=" year", value=" points", 2:4)
player year points
1 A year1 12
2 B year1 15
3 C year1 19
4 D year1 19
5 A year2 22
6 B year2 29
7 C year2 18
8 D year2 12
9 A year3 17
10 B year3 17
11 C year3 22
12 D year3 25
Дополнительные ресурсы
Целью пакета tidyr является создание «аккуратных» данных, обладающих следующими характеристиками:
- Каждый столбец является переменной.
- Каждая строка — это наблюдение.
- Каждая ячейка представляет собой одно значение.
Пакет tidyr использует четыре основные функции для создания аккуратных данных:
1. Функция распространения() .
2. Функция сбора() .
3. Функция разделения() .
- Функция объединения() .
Если вы освоите эти четыре функции, вы сможете создавать «аккуратные» данные из любого фрейма данных.