Binning une variable numérique dans R
J'ai un vecteur X qui contient des nombres positifs que je veux bin/discrétiser. Pour ce vecteur, je veux les nombres [0, 10) pour montrer comme ils existent dans le vecteur, mais des nombres [10,∞) 10+.
Je suis en utilisant:
x <- c(0,1,3,4,2,4,2,5,43,432,34,2,34,2,342,3,4,2)
binned.x <- as.factor(ifelse(x > 10,"10+",x))
mais cela se sent klugey pour moi. Quelqu'un sait-il une meilleure solution ou d'une approche différente?
source d'informationauteur
Vous devez vous connecter pour publier un commentaire.
Comment sur
cut
:Ce qui donne:
Vous cause est incompatible.
Dans la description
10
appartient à "10+" du groupe, mais dans le code10
est séparé.Si
10
devrait être dans le "10+" groupe puis vous code doit êtreDans ce cas, vous pouvez tronquer les données à 10 (si vous ne voulez pas un facteur):
Cela vous donnera un vecteur de chaînes de caractères. Vous pouvez utiliser
as.numeric(x)
de se reconvertir vers des numéros ("10+" devenirNA
), ouas.factor(x)
pour obtenir le résultat ci-dessus.Noter que ceci va modifier le vecteur d'origine lui-même, de sorte que vous pouvez les copier vers un autre vecteur et de travailler sur ça.