Converta Fator em Numérico com a Função as.numeric em R
-
Use a função
as.numeric
para converter o fator para numérico em R -
Combine as funções
as.character
eas.numeric
para converter o fator para numérico 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
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