Convertir factor a numérico con la función as.numeric en R
-
Utilice la función
as.numeric
para convertir factor a numérico en R -
Combine las funciones
as.character
yas.numeric
para convertir factor a numérico en R
Este artículo demostrará varios métodos sobre cómo convertir factor a numérico en R.
Utilice la función as.numeric
para convertir factor a numérico en R
Las funciones as
se utilizan generalmente para convertir tipos de datos a otro tipo explícitamente. El proceso de conversión se llama coerción en la terminología R y denota el concepto de conversión presente en otros lenguajes de programación. Cuando llamamos a la función as.logical
, intenta forzar el argumento pasado al tipo lógico. De manera similar, as.character
y as.numeric
convierten los argumentos dados a los tipos correspondientes. Observe que cualquier número (excepto cero) convertido al tipo lógico representa un valor TRUE
, incluso 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 también implementa reglas de coerción de tipos implícitas, que son necesarias cuando se realizan operaciones aritméticas en los vectores que constan de diferentes tipos. Como se demuestra en el siguiente fragmento de código, si un vector atómico contiene una cadena de caracteres, todos los demás elementos también se convierten en la cadena. Si el vector incluye elementos mixtos de lógica, números y cadenas, se convierten en tipos de cadenas. Finalmente, cuando el vector contiene números y lógica, estos últimos se convierten en 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"
Al convertir un factor en numérico, es importante tener en cuenta que as.numeric
solo devolverá la representación entera subyacente, que en su mayoría no tiene sentido y no se corresponde con los niveles de los factores. Se puede examinar cómo se almacena internamente un objeto de factor utilizando la función unclass
. Observe que el factor f2
tiene un índice de 2 1 2 3
, que generalmente se devuelve usando la llamada as.number
como se muestra en el siguiente ejemplo 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 las funciones as.character
y as.numeric
para convertir factor a numérico en R
Los niveles de factor se pueden convertir al tipo entero combinando las funciones as.character
y as.numeric
. as.character
devuelve niveles de factor como cadenas de caracteres. Entonces podemos llamar a la función as.numeric
para convertir la cadena en 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