683 votes

Comment convertir un facteur en nombre entier \ numeric sans perte d'information

Lorsque je convertir un facteur numérique, les valeurs changent de valeurs de classement.

J’ai recours à paste() pour obtenir les valeurs réelles.

Y a-t-il un moyen plus simple pour convertir un facteur numérique ?

821voto

Joshua Ulrich Points 68776

Reportez-vous à la section Avertissement de `` :

En particulier, appliqué à un facteur n’a aucun sens et peut se produire par contrainte implicite. Pour transformer un facteur pour environ ses valeurs numériques originaux, est recommandée et légèrement plus efficace que .

105voto

Jealie Points 1139

R a un certain nombre d' (sans-papiers) les fonctions de confort pour la conversion de facteurs:

  • as.character.factor
  • as.data.frame.factor
  • as.Date.factor
  • as.list.factor
  • as.vector.factor
  • ...

Mais fâcheusement, il n'y a rien à gérer le facteur -> numérique de conversion. Comme une extension de Josué Ulrich réponse, je suggère à surmonter cette omission à la définition de votre propre idiomatiques de la fonction:

as.numeric.factor <- function(x) {as.numeric(levels(x))[x]}

que vous pouvez stocker au début de votre script, ou encore mieux dans votre .Rprofile le fichier.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X