Как разделить данные на группы одинакового размера в 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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *