J'ai un fichier de données avec une colonne d'entiers que je voudrais utiliser comme référence pour faire une nouvelle variable catégorique. Je tiens à diviser la variable en trois groupes et à définir les gammes moi-même (c'est-à-dire 0-5, 6-10, etc.). J'ai essayé J'ai eu quelque chose en tête comme ceci: p> couper code> mais qui divise la variable en groupes en fonction d'une distribution normale et mes données sont droites. J'ai également essayé d'utiliser si / puis des déclarations, mais cela génère une valeur véritable / fausse et je voudrais garder ma variable d'origine. Je suis sûr qu'il y a un moyen simple de le faire, mais je ne peux pas sembler comprendre. Tout conseiller sur un moyen simple de le faire rapidement?
3 Réponses :
x <- rnorm(100,10,10) cut(x,c(-Inf,0,5,6,10,Inf))
La réponse de Ian ( Couper em>) est le moyen le plus courant de le faire, autant que je sache. Je préfère utiliser shingle em> Strong>, à partir du package treillis p> L'argument qui spécifie les intervalles de binning me semble un peu plus intuitif pour moi. P> Vous utilisez shingle em> comme: p>
Belle solution si vous vous souciez de configurer une matrice de valeurs min et max. Cela peut être fastidieux si vous avez une plage dynamique.
@ Roman, je pensais exactement à ça. J'ai un problème similaire mais avec des gammes dynamiques. Avez-vous des suggestions comment procéder dans ce cas?
Nous pouvons utiliser à couper avec intervalles de longueur 5 commençant sur 1: p > pour obtenir exactement votre sortie demandée: p> smart_cut code> à partir du package
cuttr code>: