Вы можете использовать функцию cut() в R для создания категориальной переменной из непрерывной.
Эта функция использует следующий базовый синтаксис:
df$cat_variable <- cut(df$continuous_variable,
breaks=c(5, 10, 15, 20, 25),
labels=c('A', 'B', 'C', 'D'))
Обратите внимание, что breaks задает значения для разделения непрерывной переменной, а labels задает метку, присваиваемую значениям новой категориальной переменной.
В следующем примере показано, как использовать этот синтаксис на практике.
Пример: создание категориальной переменной из Continuous в R
Предположим, у нас есть следующий фрейм данных в R:
#create data frame
df <- data.frame(team=c('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'),
points=c(78, 82, 86, 94, 99, 104, 109, 110))
#view data frame
df
team points
1 A 78
2 B 82
3 C 86
4 D 94
5 E 99
6 F 104
7 G 109
8 H 110
В настоящее время баллы являются непрерывной переменной.
Мы можем использовать функцию cut() , чтобы разрезать его на категориальную переменную:
#add new column that cuts 'points' into categories
df$cat <- cut(df$points,
breaks=c(70, 80, 90, 100, 110),
labels=c('Bad', 'OK', 'Good', 'Great'))
#view updated data frame
df
team points cat
1 A 78 Bad
2 B 82 OK
3 C 86 OK
4 D 94 Good
5 E 99 Good
6 F 104 Great
7 G 109 Great
8 H 110 Great
Мы создали новую категориальную переменную с именем cat , которая классифицирует каждую команду во фрейме данных как «плохая», «нормальная», «хорошая» или «отличная» в зависимости от их баллов .
Мы можем использовать функцию class() для проверки класса этой новой переменной:
#check class of 'cat' column
class(df$cat)
[1] "factor"
Мы видим, что переменная cat является фактором.
Мы также можем использовать функцию table() для подсчета вхождений каждой категории в переменной cat :
#count occurrences of each category in 'cat' variable
table(df$cat)
Bad OK Good Great
1 2 2 3
Обратите внимание, что если вы не предоставите аргумент labels для функции cut() , R просто будет использовать диапазон значений интервала в качестве меток:
#add new column that cuts 'points' into categories
df$cat <- cut(df$points, breaks=c(70, 80, 90, 100, 110))
#view updated data frame
df
team points cat
1 A 78 (70,80]
2 B 82 (80,90]
3 C 86 (80,90]
4 D 94 (90,100]
5 E 99 (90,100]
6 F 104 (100,110]
7 G 109 (100,110]
8 H 110 (100,110]
В некоторых случаях вы можете предпочесть это использованию пользовательских меток.
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные операции в R:
Как преобразовать категориальные переменные в числовые в R
Как создать категориальные переменные в R
Как отображать категориальные данные в R