Как использовать функцию cut() в r


Функцию Cut() в R можно использовать для разрезания диапазона значений на ячейки и указания меток для каждой ячейки.

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

Cut(x, Breaks, Labels = NULL, …)

Золото:

  • x : имя вектора
  • Breaks : количество перерывов, которые нужно сделать, или вектор точек разрыва.
  • labels : метки для результирующих ячеек.

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

 #create data frame
df <- data. frame (player=c('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I'),
                 points=c(4, 7, 8, 12, 14, 16, 20, 26, 36))

#view data frame
df

  player points
1 to 4
2 B 7
3 C 8
4 D 12
5 E 14
6 F 16
7 G 20
8:26 a.m.
9 I 36

Пример 1. Разрежьте вектор по количеству разрывов.

В следующем коде показано, как использовать функцию Cut() для создания нового столбца с именем «Категория» , который разбивает столбец точек на группы из четырех одинаковых размеров:

 #create new column that places each player into four categories based on points
df$category <- cut(df$points, breaks= 4 )

#view updated data frame
df

  player points category
1 to 4 (3.97.12]
2 B 7 (3.97.12]
3 C 8 (3.97.12]
4 D 12 (3.97.12]
5 E 14 (12.20]
6 F 16 (12.20]
7 G 20 (12.20]
8:26 a.m. (20.28]
9 I 36 (28.36]

Поскольку мы указали Breaks=4 , функция Cut() делит значения в столбце точек на группы по четыре равных размера.

Вот как это сделала функция Cut() :

  • Сначала он нашел разницу между наибольшим и наименьшим значениями в столбце баллов (36 – 4 = 32).
  • Затем он делит эту разницу на 4 (32/4 = 8)
  • В результате получаются четыре контейнера шириной 8 каждый.

Примечание . Самый низкий интервал — 3,97 вместо 4 благодаря следующей функциональности из документации Cut() :

Если паузы указаны как одно число, диапазон данных делится на фрагменты пауз одинаковой длины, затем внешние пределы перемещаются на 0,1 % от диапазона, чтобы гарантировать, что выбросы попадают в оба интервала пауз.

Пример 2: Вектор разрезания на основе определенных точек останова

В следующем коде показано, как использовать функцию Cut() для создания нового столбца с именем «Категория» , который обрезает столбец точек на основе вектора определенных точек останова:

 #create new column based on specific break points
df$category <- cut(df$points, breaks=c(0, 10, 15, 20, 40))

#view updated data frame
df

  player points category
1 to 4 (0.10]
2 B 7 (0.10]
3 C 8 (0.10]
4 D 12 (10.15]
5 E 14 (10.15]
6 F 16 (15.20]
7 G 20 (15.20]
8:26 a.m. (20.40)
9 I 36 (20.40]

Функция Cut() классифицировала каждого игрока по категориям на основе предоставленного нами вектора точек останова.

Пример 3. Вырезание вектора с использованием определенных точек останова и меток

В следующем коде показано, как использовать функцию Cut() для создания нового столбца с именем «Категория» , который обрезает столбец точек на основе вектора определенных точек останова с настраиваемыми метками:

 #create new column based on values in points column
df$category <- cut(df$points,
                   breaks=c(0, 10, 15, 20, 40),
                   labels=c(' Bad ', ' OK ', ' Good ', ' Great '))

#view updated data frame
df

  player points category
1 A 4 Bad
2 B 7 Bad
3 C 8 Bad
4 D 12 OK
5 E 14 OK
6 F 16 Good
7 G 20 Good
8:26 A.M. Great
9 I 36 Great

В столбце новой категории каждому игроку присваиваются оценки «Плохо», «Хорошо», «Хорошо» или «Отлично» на основе соответствующего значения в столбце очков .

Примечание . Число меток всегда должно быть на единицу меньше количества точек останова, чтобы избежать следующей ошибки:

 Error in cut.default(df$points, breaks = c(0, 10, 15, 20, 40), labels = c("Bad",: 
  lengths of 'breaks' and 'labels' differ

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

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

Как использовать функцию tabulate() в R
Как использовать функцию Split() в R
Как использовать функцию match() в R
Как использовать функцию репликации() в R

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

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