Как создать категориальные переменные в R (с примерами)


Вы можете использовать следующий синтаксис для создания категориальной переменной в R:

#create categorical variable from scratch
cat_variable <- factor(c('A', 'B', 'C', 'D'))

#create categorical variable (with two possible values) from existing variable
cat_variable <- as. factor ( ifelse (existing_variable < 4, 1, 0))

#create categorical variable (with multiple possible values) from existing variable
cat_variable <- as. factor ( ifelse (existing_variable < 3, 'A',
 ifelse (existing_variable < 4, 'B', 
 ifelse (existing_variable < 5, 'C', 
 ifelse (existing_variable < 6, 'D',0)))))

В следующих примерах показано, как использовать этот синтаксис на практике.

Пример 1: создание категориальной переменной с нуля

Следующий код показывает, как создать категориальную переменную с нуля:

#create data frame
df <- data.frame(var1=c(1, 3, 3, 4, 5),
 var2=c(7, 7, 8, 3, 2),
 var3=c(3, 3, 6, 10, 12),
 var4=c(14, 16, 22, 19, 18))

#view data frame
df

 var1 var2 var3 var4
1 1 7 3 14
2 3 7 3 16
3 3 8 6 22
4 4 3 10 19
5 5 2 12 18

#add categorical variable named 'type' to data frame
df$type <- factor(c('A', 'B', 'B', 'C', 'D'))

#view updated data frame
df

 var1 var2 var3 var4 type
1 1 7 3 14 A
2 3 7 3 16 B
3 3 8 6 22 B
4 4 3 10 19 C
5 5 2 12 18 D

Пример 2. Создание категориальной переменной (с двумя значениями) из существующей переменной

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

#create data frame
df <- data.frame(var1=c(1, 3, 3, 4, 5),
 var2=c(7, 7, 8, 3, 2),
 var3=c(3, 3, 6, 10, 12),
 var4=c(14, 16, 22, 19, 18))

#view data frame
df

 var1 var2 var3 var4
1 1 7 3 14
2 3 7 3 16
3 3 8 6 22
4 4 3 10 19
5 5 2 12 18

#add categorical variable named 'type' using values from 'var4' column
df$type <- as. factor ( ifelse(df$var1 < 4, 1, 0))

#view updated data frame
df

 var1 var2 var3 var4 type
1 1 7 3 14 1
2 3 7 3 16 1
3 3 8 6 22 1
4 4 3 10 19 0
5 5 2 12 18 0

Используя оператор ifelse() , мы создали новую категориальную переменную с именем «тип», которая принимает следующие значения:

  • 1 , если значение в столбце 'var1' меньше 4.
  • 0 , если значение в столбце 'var1' не меньше 4.

Пример 3. Создание категориальной переменной (с несколькими значениями) из существующей переменной

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

#create data frame
df <- data.frame(var1=c(1, 3, 3, 4, 5),
 var2=c(7, 7, 8, 3, 2),
 var3=c(3, 3, 6, 10, 12),
 var4=c(14, 16, 22, 19, 18))

#view data frame
df

 var1 var2 var3 var4
1 1 7 3 14
2 3 7 3 16
3 3 8 6 22
4 4 3 10 19
5 5 2 12 18

#add categorical variable named 'type' using values from 'var4' column
df$type <- as. factor ( ifelse(df$var1 < 3, 'A',
 ifelse(df$var1 < 4, 'B', 
 ifelse(df$var1 < 5, 'C', 
 ifelse(df$var1 < 6, 'D', 'E')))))

#view updated data frame
df

 var1 var2 var3 var4 type
1 1 7 3 14 A
2 3 7 3 16 B
3 3 8 6 22 B
4 4 3 10 19 C
5 5 2 12 18 D

Используя оператор ifelse() , мы создали новую категориальную переменную с именем «тип», которая принимает следующие значения:

  • ' A', если значение в столбце 'var1' меньше 3.
  • В противном случае « B », если значение в столбце «var1» меньше 4.
  • В противном случае « C », если значение в столбце «var1» меньше 5.
  • В противном случае « D », если значение в столбце «var1» меньше 6.
  • В противном случае " Е ".

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

Как создать фиктивные переменные в R
Как преобразовать фактор в символ в R
Как преобразовать символ в число в R