Convertir le facteur en numérique avec la fonction as.numeric dans R
-
Utilisez la fonction
as.numeric
pour convertir le facteur en numérique dans R -
Combinez les fonctions
as.character
etas.numeric
pour convertir le facteur en numérique dans R
Cet article présentera plusieurs méthodes sur la façon de convertir le facteur en numérique dans R.
Utilisez la fonction as.numeric
pour convertir le facteur en numérique dans R
Les fonctions as
sont généralement utilisées pour convertir explicitement un type de données en un autre type. Le processus de conversion est appelé coercition dans la terminologie R et désigne le concept de casting présent dans d’autres langages de programmation. Lorsque nous appelons la fonction as.logical
, elle essaie de forcer l’argument passé au type logique. De même, as.character
et as.numeric
convertissent les arguments donnés dans les types correspondants. Notez que tout nombre (sauf zéro) converti au type logique représente une valeur TRUE
, même négative.
> 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 implémente également des règles de coercition de type implicite, qui sont nécessaires lorsque des opérations arithmétiques sont effectuées sur les vecteurs constitués de différents types. Comme le montre l’extrait de code suivant, si un vecteur atomique contient une chaîne de caractères, tous les autres éléments sont également convertis en chaîne. Si le vecteur comprend des éléments mixtes de logique, de nombres et de chaînes, ils sont contraints à des types de chaîne. Enfin, lorsque le vecteur contient des nombres et de la logique, ces derniers sont convertis en nombres.
> 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"
Lors de la conversion d’un facteur en numérique, il est important de noter que as.numeric
ne renverra que la représentation entière sous-jacente, qui n’a généralement pas de sens et ne correspond pas aux niveaux de facteur. On peut examiner comment un objet facteur est stocké en interne en utilisant la fonction unclass
. Notez que le facteur f2
a un index de 2 1 2 3
, qui est généralement renvoyé à l’aide de l’appel as.number
comme indiqué dans l’exemple de code suivant :
> 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
Combinez les fonctions as.character
et as.numeric
pour convertir le facteur en numérique dans R
Les niveaux de facteurs peuvent être convertis au type entier en combinant les fonctions as.character
et as.numeric
. as.character
renvoie les niveaux de facteur sous forme de chaînes de caractères. Ensuite, nous pouvons appeler la fonction as.numeric
pour contraindre la chaîne à des nombres.
> 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