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


Функцию spread() из пакета tidyr можно использовать для «распределения» пары «ключ-значение» по нескольким столбцам.

Эта функция использует следующий базовый синтаксис:

распространение(данные, ключевое значение)

куда:

  • data : Имя фрейма данных
  • key : столбец, значения которого станут именами переменных
  • value : Столбец, в котором значения будут заполняться новыми переменными, созданными из ключа

В следующих примерах показано, как использовать эту функцию на практике.

Пример 1. Распространение значений по двум столбцам

Предположим, у нас есть следующий фрейм данных в R:

#create data frame
df <- data.frame(player= rep (c('A', 'B'), each= 4 ),
 year= rep (c(1, 1, 2, 2), times= 2 ),
 stat= rep (c('points', 'assists'), times= 4 ),
 amount=c(14, 6, 18, 7, 22, 9, 38, 4))

#view data frame
df

 player year stat amount
1 A 1 points 14
2 A 1 assists 6
3 A 2 points 18
4 A 2 assists 7
5 B 1 points 22
6 B 1 assists 9
7 B 2 points 38
8 B 2 assists 4

Мы можем использовать функцию spread() , чтобы превратить значения в столбце статистики в их собственные столбцы:

library(tidyr)

#spread stat column across multiple columns
spread(df, key=stat, value=amount)

 player year assists points
1 A 1 6 14
2 A 2 7 18
3 B 1 9 22
4 B 2 4 38

Пример 2. Распространение значений более чем по двум столбцам

Предположим, у нас есть следующий фрейм данных в R:

#create data frame
df2 <- data.frame(player= rep (c('A'), times= 8 ),
 year= rep (c(1, 2), each= 4 ),
 stat= rep (c('points', 'assists', 'steals', 'blocks'), times= 2 ),
 amount=c(14, 6, 2, 1, 29, 9, 3, 4))

#view data frame
df2

 player year stat amount
1 A 1 points 14
2 A 1 assists 6
3 A 1 steals 2
4 A 1 blocks 1
5 A 2 points 29
6 A 2 assists 9
7 A 2 steals 3
8 A 2 blocks 4

Мы можем использовать функцию spread() , чтобы преобразовать четыре уникальных значения в столбце статистики в четыре новых столбца:

library(tidyr)

#spread stat column across multiple columns
spread(df2, key=stat, value=amount)

 player year assists blocks points steals
1 A 1 6 1 14 2
2 A 2 9 4 29 3

Дополнительные ресурсы

Целью пакета tidyr является создание «аккуратных» данных, обладающих следующими характеристиками:

  • Каждый столбец является переменной.
  • Каждая строка — это наблюдение.
  • Каждая ячейка представляет собой одно значение.

Пакет tidyr использует четыре основные функции для создания аккуратных данных:

1. Функция распространения() .

2. Функция сбора() .

3. Функция разделения() .

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

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

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.