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


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

Метод 1: преобразовать одну категориальную переменную в числовую

df$var1 <- unclass(df$var1)

Метод 2: преобразование нескольких категориальных переменных в числовые

df[, c('var1', 'var2')] <- sapply(df[, c('var1', 'var2')], unclass)

Метод 3: преобразовать все категориальные переменные в числовые

df[sapply(df, is. factor )] <- data. matrix(df[sapply(df, is. factor )])

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

#create data frame with some categorical variables
df <- data.frame(team=as. factor (c('A', 'B', 'C', 'D')),
 conf=as. factor (c('AL', 'AL', 'NL', 'NL')),
 win=as. factor (c('Yes', 'No', 'No', 'Yes')),
 points=c(122, 98, 106, 115))

#view data frame
df

 team conf win points
1 A AL Yes 122
2 B AL No 98
3 C NL No 106
4 D NL Yes 115

Метод 1: преобразовать одну категориальную переменную в числовую

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

#convert 'team' variable to numeric
df$team <- unclass(df$team)

#view updated data frame
df

 team conf win points
1 1 AL Yes 122
2 2 AL No 98
3 3 NL No 106
4 4 NL Yes 115

Обратите внимание, что значения переменной team были преобразованы в числовые значения.

Метод 2: преобразование нескольких категориальных переменных в числовые

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

#convert 'team' and 'win' variables to numeric
df[, c('team', 'win')] <- sapply(df[, c('team', 'win')], unclass)

#view updated data frame
df

 team conf win points
1 1 AL 2 122
2 2 AL 1 98
3 3 NL 1 106
4 4 NL 2 115

Обратите внимание, что значения переменных team и win были преобразованы в числовые значения.

Метод 3: преобразовать все категориальные переменные в числовые

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

#convert all categorical variables to numeric
df[sapply(df, is. factor )] <- data. matrix(df[sapply(df, is. factor )])

#view updated data frame
df

 team conf win points
1 1 1 2 122
2 2 1 1 98
3 3 2 1 106
4 4 2 2 115

Обратите внимание, что значения для каждой из категориальных переменных во фрейме данных были преобразованы в числовые значения.

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

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

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