Мы можем использовать следующий синтаксис для преобразования вектора факторов в числовой вектор в 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