Как использовать функцию 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