Convertir le facteur en numérique avec la fonction as.numeric dans R

Jinku Hu 30 janvier 2023
  1. Utilisez la fonction as.numeric pour convertir le facteur en numérique dans R
  2. Combinez les fonctions as.character et as.numeric pour convertir le facteur en numérique dans R
Convertir le facteur en numérique avec la fonction as.numeric 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
Auteur: 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

Article connexe - R Factor