Функцию unite() из пакета tidyr можно использовать для объединения нескольких столбцов фрейма данных в один столбец.
Эта функция использует следующий базовый синтаксис:
объединить (данные, столбец, в, раздел)
куда:
- data : Имя фрейма данных
- col : Имя нового объединенного столбца
- … : Вектор имен для объединяемых столбцов
- sep : Как объединить данные в новый объединенный столбец
В следующих примерах показано, как использовать эту функцию на практике.
Пример 1. Объединение двух столбцов в один столбец
Предположим, у нас есть следующий фрейм данных в R:
#create data frame
df <- data.frame(player=c('A', 'A', 'B', 'B', 'C', 'C'),
year=c(1, 2, 1, 2, 1, 2),
points=c(22, 29, 18, 11, 12, 19),
assists=c(2, 3, 6, 8, 5, 2))
#view data frame
df
player year points assists
1 A 1 22 2
2 A 2 29 3
3 B 1 18 6
4 B 2 11 8
5 C 1 12 5
6 C 2 19 2
Мы можем использовать функцию unite() , чтобы объединить столбцы «баллы» и «помощь» в один столбец:
library(tidyr)
#unite points and assists columns into single column
unite(df, col='points-assists', c('points', 'assists'), sep='-')
player year points-assists
1 A 1 22-2
2 A 2 29-3
3 B 1 18-6
4 B 2 11-8
5 C 1 12-5
6 C 2 19-2
Пример 2: объединить более двух столбцов
Предположим, у нас есть следующий фрейм данных в R:
#create data frame
df2 <- data.frame(player=c('A', 'A', 'B', 'B', 'C', 'C'),
year=c(1, 2, 1, 2, 1, 2),
points=c(22, 29, 18, 11, 12, 19),
assists=c(2, 3, 6, 8, 5, 2),
blocks=c(2, 3, 3, 2, 1, 0))
#view data frame
df2
player year points assists blocks
1 A 1 22 2 2
2 A 2 29 3 3
3 B 1 18 6 3
4 B 2 11 8 2
5 C 1 12 5 1
6 C 2 19 2 0
Мы можем использовать функцию unite() , чтобы объединить столбцы очков, помощи и блоков в один столбец:
library(tidyr)
#unite points, assists, and blocks column into single column
unite(df2, col='stats', c('points', 'assists', 'blocks'), sep='/')
player year stats
1 A 1 22/2/2
2 A 2 29/3/3
3 B 1 18/6/3
4 B 2 11/8/2
5 C 1 12/5/1
6 C 2 19/2/0
Дополнительные ресурсы
Целью пакета tidyr является создание «аккуратных» данных, обладающих следующими характеристиками:
- Каждый столбец является переменной.
- Каждая строка — это наблюдение.
- Каждая ячейка представляет собой одно значение.
Пакет tidyr использует четыре основные функции для создания аккуратных данных:
1. Функция распространения() .
2. Функция сбора() .
3. Функция разделения() .
- Функция объединения() .
Если вы освоите эти четыре функции, вы сможете создавать «аккуратные» данные из любого фрейма данных.