Как преобразовать фактор в числовой в R (с примерами)


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

numeric_vector <- as. numeric (as. character (factor_vector))

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

В этом руководстве представлено несколько примеров использования этой функции на практике.

Пример 1. Преобразование вектора из факторного в числовой

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

#define factor vector
factor_vector <- factor(c(1, 5, 7, 8))

#convert factor vector to numeric vector
numeric_vector <- as. numeric (as. character (factor_vector))

#view class
class(numeric_vector)

[1] "numeric"

Пример 2. Преобразование столбца из факторного в числовой

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

#create data frame
df <- data.frame(a = factor(c(1, 5, 7, 8)),
 b = c(28, 34, 35, 36))

#convert column 'a' from factor to numeric
df$a <- as. numeric (as. character (df$a))

#view new data frame
df

 a b
1 1 28
2 5 34
3 7 35
4 8 36

#confirm class of numeric vector
class(df$a)

[1] "numeric"

Пример 3. Преобразование нескольких столбцов из факторных в числовые

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

#create data frame
df <- data.frame(a = factor(c(1, 5, 7, 8)),
 b = factor(c(2, 3, 4, 5)),
 c = c('A', 'B', 'C', 'D'),
 d = c(45, 56, 54, 57))

#display classes of each column
sapply(df, class)

 a b c d 
"factor" "factor" "character" "numeric" 

#identify all factor columns
x <- sapply(df, is. factor )

#convert all factor columns to numeric
df[ , x] <- as. data.frame ( apply(df[ , x], 2, as. numeric ))

#display classes of each column
sapply(df, class)

 a b c d 
"numeric" "numeric" "character" "numeric" 

Этот код внес следующие изменения в столбцы фрейма данных:

  • Столбец а: от фактора к числовому
  • Колонка b: от коэффициента к числовому
  • Столбец c: без изменений (поскольку это был символ)
  • Столбец d: без изменений (поскольку он уже был числовым)

Используя функции apply() и sapply() , мы смогли преобразовать только столбцы факторов в числовые столбцы и оставить все остальные столбцы без изменений.

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

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

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