Як використовувати pivot_wider() у r


Функцію pivot_wider() пакета Tidyr у R можна використовувати для обертання блоку даних із довгого формату на широкий.

Ця функція використовує такий базовий синтаксис:

 library (tidyr)

df %>% pivot_wider(names_from = var1, values_from = var2)

золото:

  • names_from : стовпець, значення якого будуть використовуватися як імена стовпців
  • values_from : стовпець, значення якого використовуватимуться як значення комірки

У наступному прикладі показано, як використовувати цю функцію на практиці.

За темою: Довгі чи широкі дані: у чому різниця?

Приклад: використовуйте pivot_wider() у R

Припустимо, у 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

Ми можемо використовувати функцію pivot_wider() , щоб перетворити цей кадр даних у широкий формат:

 library (tidyr)

#pivot the data frame into a wide format
df %>% pivot_wider(names_from = stat, values_from = amount)

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

Зверніть увагу, що значення в стовпці статистики тепер використовуються як назви стовпців, а значення в стовпці суми використовуються як значення клітинок у цих нових стовпцях.

Кінцевим результатом є великий блок даних.

Примітка . Повну документацію щодо функції pivot_wider() можна знайти тут .

Додаткові ресурси

У наступних посібниках пояснюється, як використовувати інші поширені функції пакета Tidyr у R:

Як використовувати функцію Spread у R
Як використовувати функцію collect у R
Як використовувати окрему функцію в R
Як використовувати функцію Unite у R

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *