2017-10-15 10 views
0

J'essaie de classer les données numériques d'une colonne dans R sur la base du 1er, 3e et 4e quantile (c.-à-0-25%, 25% -75%, 75% - 100%). J'ai utilisé le code suivant mais le zéro ne sont pas inclus dans le binning. Ils sont montrés comme NA.Couper et quantile dans R en n'incluant pas zéro

rawdata1$usage4 <- cut(rawdata1$Usage_Percentage, 
     breaks = quantile(rawdata1$Usage_Percentage, 
     probs = c(-Inf,0.25,0.75,Inf),include.lowest=T),labels=F) 

Erreur dans quantile.default (rawdata1 $ Usage_Percentage, Probs = c (-Inf, 0,25,: à côté probs '[0,1]

Cependant si l'utilisation de ce qui suit le code et le diviser en 4 quantiles, les bacs sont très bien.

rawdata1$usage5 <- cut(rawdata1$Usage_Percentage, 
    breaks = quantile(rawdata1$Usage_Percentage), 
    include.lowest=T,labels=F) 
+2

Avez-vous essayé 'probs = c (0,0.25,0.75,1),' – G5W

Répondre

0

Pour inclure des zéros dans le binning, vous pouvez également utiliser la fonction de cut2Hmisc. Voici un exemple.

data <- data.frame(vect = c(1.64, 1.5, 1.5, 1.41, 1.64, 1.64, 0, 1.45, 1.64, 1.5, 1.45, 0, 1.45, 1.64, 
          1.5, 1.5, 1.5, 0, 1.5, 1.41, 0.18, 0.09, 0.1, 0.09, 0.05, 0.09, 1.64, 1.5, 
          1.5, 0.1, 0.05, 0.09, 0, 5.82, 5.86, 5.86, 0, 5.82, 5.82, 5.82, 5.82, 5.82, 
          5.86, 5.86, 5.82, 0, 5.91, 9.41, 9.5, 5.91, 0, 9.45, 5.91, 9.45, 5.91, 0, 
          0, 9.55, 5.91, 9.55, 9.5, 9.55, 0, 5.82, 1.64)) 

data$bin <- factor(Hmisc::cut2(data$vect, g = 4), labels = c(1:4)) 
#g represents the number of quantile groups