L'utilisation de COUPER et le Quartile de générer des ruptures dans la fonction R
Suivantes quelques bons conseils avant de partir, je suis en train d'écrire mon 2ème de la fonction R et à l'aide d'une logique similaire. Cependant, je suis en train d'automatiser un peu plus et peut-être trop intelligent pour mon propre bien.
J'ai envie de casser les clients en quintiles en fonction du nombre de commandes. Voici mon code pour le faire:
# sample data
clientID <- round(runif(200,min=2000, max=3000),0)
orders <- round(runif(200,min=1, max=50),0)
df <- df <- data.frame(cbind(clientID,orders))
#function to break them into quintiles
ApplyQuintiles <- function(x) {
cut(x, breaks=c(quantile(df$orders, probs = seq(0, 1, by = 0.20))),
labels=c("0-20","20-40","40-60","60-80","80-100"))
}
#Add the quintile to the dataframe
df$Quintile <- sapply(df$orders, ApplyQuintiles)
table(df$Quintile)
0-20 20-40 40-60 60-80 80-100
40 39 44 38 36
Vous verrez ici que dans mon échantillon de données, j'ai créé 200 observations, mais seulement 197 sont répertoriés via table
. Le 3 gauche sont NA
Maintenant, il y a quelques clientIDs qui ont " NA " pour quintile. Il semble que si ils étaient au plus bas pause, dans ce cas, de 1, alors qu'ils n'ont pas été inclus dans la fonction de couper.
Est-il un moyen de faire cut
inclusive de toutes les observations?
include.lowest=TRUE
comme un argument de cut()
. Voir ?cut
OriginalL'auteur mikebmassey | 2012-07-30
Vous devez vous connecter pour publier un commentaire.
Essayez ce qui suit:
J'ai inclus
include.lowest=TRUE
dans votre fonction de couper, ce qui semble pour le faire fonctionner. Voir?cut
pour plus de détails.OriginalL'auteur Edward
Il est également cut2 dans la vénérable Hmisc paquet. Il ne quantile coupes.
De l'aide:
OriginalL'auteur Owen
Vous pouvez très facilement effectuer cette opération automatiquement avec le
content
méthode dans lebin
fonction dans le OneR paquet:(Divulgation complète: je suis l'auteur de ce forfait)
OriginalL'auteur vonjd
- Je utiliser une fonction similaire pour mes données et je suis inquiet parce que mon quintile de bacs ont des nombres différents de l'observation: est-ce OK?
Merci!
Et le résultat que j'obtiens est:
OriginalL'auteur Paula