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


Функцию split() в R можно использовать для разделения данных на группы на основе уровней факторов.

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

разделить (х, f, …)

куда:

  • x : Имя вектора или фрейма данных для разделения на группы.
  • f : Фактор, который определяет группы

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

Пример 1. Использование функции split() для разделения вектора на группы

В следующем коде показано, как разбить вектор значений данных на группы на основе вектора уровней факторов:

#create vector of data values
data <- c(1, 2, 3, 4, 5, 6)

#create vector of groupings
groups <- c('A', 'B', 'B', 'B', 'C', 'C')

#split vector of data values into groups
split(x = data, f = groups)

$A
[1] 1

$B
[1] 2 3 4

$C
[1] 5 6

В итоге три группы.

Обратите внимание, что вы также можете использовать индексирование для извлечения определенных групп:

#split vector of data values into groups and only display second group
split(x = data, f = groups)[2]

$B
[1] 2 3 4

Пример 2: Используйте split() для разделения фрейма данных на группы

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

#create data frame
df <- data.frame(team=c('A', 'A', 'A', 'B', 'B', 'B'),
 position=c('G', 'G', 'F', 'G', 'F', 'F'),
 points=c(33, 28, 31, 39, 34, 44),
 assists=c(30, 28, 24, 24, 28, 19))

#view data frame
df

 team position points assists
1 A G 33 30
2 A G 28 28
3 A F 31 24
4 B G 39 24
5 B F 34 28
6 B F 44 19

Мы можем использовать следующий код, чтобы разделить фрейм данных на группы на основе переменной «команда»:

#split data frame into groups based on 'team'
split(df, f = df$team)

$A
 team position points assists
1 A G 33 30
2 A G 28 28
3 A F 31 24

$B
 team position points assists
4 B G 39 24
5 B F 34 28
6 B F 44 19

В итоге две группы. Первая содержит только строки, где «команда» равна A, а вторая содержит только строки, где «команда» равна B.

Обратите внимание, что мы также можем разделить данные на группы, используя несколько факторных переменных. Например, следующий код показывает, как разделить данные на группы на основе переменных «команда» и «позиция»:

#split data frame into groups based on 'team' and 'position' variables
split(df, f = list(df$team, df$position))

$A.F
 team position points assists
3 A F 31 24

$B.F
 team position points assists
5 B F 34 28
6 B F 44 19

$A.G
 team position points assists
1 A G 33 30
2 A G 28 28

$B.G
 team position points assists
4 B G 39 24

В результате четыре группы.

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

В следующих руководствах объясняется, как использовать другие распространенные функции в R:

Как использовать функцию summary() в R
Как использовать функцию replicate() в R
Как использовать функцию match() в R

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