Как использовать функцию сбора в R (с примерами)


Функцию 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. Функция разделения() .

  1. Функция объединения() .

Если вы освоите эти четыре функции, вы сможете создавать «аккуратные» данные из любого фрейма данных.