Как разделить данные на группы одинакового размера в r
Вы можете использовать функцию Cut_number() пакета ggplot2 в R, чтобы разделить вектор на группы одинакового размера.
Эта функция использует следующий базовый синтаксис:
Cut_number (х, п)
Золото:
- x: Имя цифрового вектора, который нужно разделить.
- n: Количество групп
В следующем примере показано, как использовать эту функцию на практике.
Пример: как разделить данные на группы одинакового размера в R
Предположим, у нас есть следующий кадр данных в R, который содержит информацию об очках, набранных 12 разными баскетболистами.
#create data frame df <- data. frame (player=LETTERS[1:12], points=c(1, 2, 2, 2, 4, 5, 7, 9, 12, 14, 15, 22)) #view data frame df player points 1 to 1 2 B 2 3 C 2 4 D 2 5 E 4 6 F 5 7 G 7 8:9 a.m. 9 I 12 10 D 14 11K15 12 L 22
Связанный: Как использовать функцию БУКВЫ в R
Мы можем использовать функцию Cut_number() из пакета ggplot2 для создания нового столбца с именем group , который делит каждую строку фрейма данных на одну из трех групп на основе значения в столбце точек :
library (ggplot2) #create new column that splits data into three equal sized groups based on points df$group <- cut_number(df$points, 3) #view updated data frame df player points group 1 To 1 [1,3.33] 2 B 2 [1,3.33] 3 C 2 [1,3.33] 4 D 2 [1,3.33] 5 E 4 (3.33.10] 6 F 5 (3.33.10] 7 G 7 (3.33.10] 8 A.M. 9 (3.33.10] 9 I 12 (10.22] 10 J 14 (10.22] 11 K 15 (10.22] 12 L 22 (10.22]
Каждый из 12 игроков был помещен в одну из трех групп в зависимости от значения, указанного в столбце очков .
Из результата мы видим, что существует 3 отдельные группы:
- группа 1: значение баллов от 1 до 3,33.
- группа 2: значение баллов от 3,33 до 10.
- группа 3: значение баллов от 10 до 22.
Мы видим, что в каждую группу попали четыре игрока.
Если вы хотите, чтобы столбец группы отображал группы как целочисленные значения, вы можете обернуть функцию Cut_number() в функцию as.numeric() :
library (ggplot2) #create new column that splits data into three equal sized groups based on points df$group <- as. numeric (cut_number(df$points, 3)) #view updated data frame df player points group 1 A 1 1 2 B 2 1 3 C 2 1 4 D 2 1 5 E 4 2 6 F 5 2 7 G 7 2 8:92 a.m. 9 I 12 3 10 D 14 3 11 K 15 3 12 L 22 3
Столбец новой группы теперь содержит значения 1, 2 и 3, указывающие, к какой группе принадлежит игрок.
Опять же, в каждой группе по четыре игрока.
Примечание . Чтобы разделить столбец точек на более чем три группы, просто замените цифру 3 в функции Cut_number() другим числом.
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные задачи в R:
Как разделить фрейм данных в R
Как разделить данные на обучающие и тестовые наборы в R
Как выполнить группировку данных в R