Como converter um fator em numérico em r (com exemplos)


Podemos usar a seguinte sintaxe para converter um vetor de fator em um vetor numérico em R:

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

Devemos primeiro converter o vetor de fator em um vetor de caracteres e depois em um vetor numérico. Isso garante que o vetor numérico contenha os valores numéricos reais em vez dos níveis dos fatores.

Este tutorial fornece vários exemplos de uso prático desta função.

Exemplo 1: Converter um vetor de fator em numérico

O código a seguir mostra como converter um vetor de fator em um vetor numérico:

 #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] "digital"

Exemplo 2: Converter uma coluna de fator em numérico

O código a seguir mostra como converter uma coluna específica em um quadro de dados de fator em numérico:

 #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

  ab
1 1 28
2 5 34
3 7 35
4 8 36

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

[1] "digital"

Exemplo 3: Converter colunas de múltiplos fatores em numéricos

O código a seguir mostra como converter todas as colunas de fator em um quadro de dados de fator em valores numéricos:

 #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)

       abcd
"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)

        abcd
"numeric" "numeric" "character" "numeric"

Este código fez as seguintes alterações nas colunas do quadro de dados:

  • Coluna a: Do carteiro ao digital
  • Coluna b: Do carteiro ao digital
  • Coluna c: Inalterado (já que era um personagem)
  • Coluna d: Inalterada (pois já era numérica)

Usando as funções apply() e sapply() , conseguimos converter apenas as colunas de fator em colunas numéricas e deixar todas as outras colunas inalteradas.

Recursos adicionais

Como converter um caractere em um fator em R
Como converter fator em caractere em R
Como converter um caractere em um carimbo de data/hora em R

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *