Converta Fator em Numérico com a Função as.numeric em R

Jinku Hu 30 janeiro 2023
  1. Use a função as.numeric para converter o fator para numérico em R
  2. Combine as funções as.character e as.numeric para converter o fator para numérico em R
Converta Fator em Numérico com a Função as.numeric em R

Este artigo demonstrará vários métodos sobre como converter fator em numérico em R.

Use a função as.numeric para converter o fator para numérico em R

As funções as geralmente são usadas para converter explicitamente o tipo de dados em outro tipo. O processo de conversão é chamado de coerção na terminologia R e denota o conceito de casting presente em outras linguagens de programação. Quando chamamos a função as.logical, ela tenta forçar o argumento passado para o tipo lógico. Da mesma forma, as.character e as.numeric convertem os argumentos fornecidos para os tipos correspondentes. Observe que qualquer número (exceto zero) convertido para o tipo lógico representa um valor TRUE, mesmo negativos.

> as.logical(31)
[1] TRUE

> as.logical(-31)
[1] TRUE

> as.character(31)
[1] "31"

> as.numeric(FALSE)
[1] 0

> as.numeric(TRUE)
[1] 1

R também implementa regras de coerção de tipo implícitas, que são necessárias quando as operações aritméticas são feitas nos vetores que consistem em tipos diferentes. Conforme demonstrado no fragmento de código a seguir, se um vetor atômico contiver uma sequência de caracteres, todos os outros elementos também serão convertidos na sequência. Se o vetor incluir elementos mistos de lógica, números e strings, eles serão coagidos para tipos de string. Finalmente, quando o vetor contém números e lógica, os últimos são convertidos em números.

> v1 <- c(1, "two", 3, 4, 5, 6)

> typeof(v1)
[1] "character"

> v1 <- c(T, "two", 3, 1, F, T)

> typeof(v1)
[1] "character"

> v1 <- c(1, T, 3, F, 5, 6)

> typeof(v1)
[1] "double"

Ao converter um fator em numérico, é importante observar que as.numeric retornará apenas a representação inteira subjacente, que é quase sempre sem sentido e não corresponde aos níveis dos fatores. Pode-se examinar como um objeto de fator é armazenado internamente usando a função desclassificar. Observe que o fator f2 tem um índice de 2 1 2 3, que geralmente é retornado usando a chamada as.number conforme mostrado no próximo exemplo de código:

> f2 <- factor(c(3, 2, 3, 4))

> f2
[1] 3 2 3 4
Levels: 2 3 4

> f2.n <- as.numeric(f2)

> unclass(f2)
[1] 2 1 2 3
attr(,"levels")
[1] "2" "3" "4"

> f2.n
[1] 2 1 2 3

Combine as funções as.character e as.numeric para converter o fator para numérico em R

Os níveis de fator podem ser convertidos para o tipo inteiro combinando as funções as.character e as.numeric. as.character retorna níveis de fator como cadeias de caracteres. Então, podemos chamar a função as.numeric para forçar string a números.

> f2 <- factor(c(3, 2, 3, 4))

> f2.c <- as.character(f2)

> f2.c
[1] "3" "2" "3" "4"

> f2.c <- as.numeric(as.character(f2))

> f2.c
[1] 3 2 3 4
Autor: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn Facebook