Как преобразовать категориальные переменные в числовые в 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

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.