2017-04-05 8 views
0

zu erhalten Ich versuche, meine Daten zu 3 Gruppen zwischen 30. und 70. Perzentil zu klassifizieren, Previosly war einfach für mich, meine Daten durch gleiche Gruppen wie mein Code unten zu beweisen.Verwenden Sie Quantil, um Perzentil in r

MV_UK$`1993` <- with(MV_UK, cut(MV_UK$`1993`, breaks = quantile(MV_UK$`1993`, probs = seq(0,1 , by= 0.5), na.rm = TRUE), include.lowest = TRUE , labels= c("S","B"))) 

Ich habe versucht, diesen Code

MV_UK$`1992` <- with(MV_UK, cut(BTM_UK$`1992`, breaks = quantile(MV_UK$`1992`, probs = c(.3,.7) , na.rm = TRUE), include.lowest = TRUE , labels= c("L","M","B"))) 

Aber ich erhalte eine Fehlermeldung

lengths of 'breaks' and 'labels' differ 
+0

es wäre hilfreich, wenn Sie einige Beispieldaten bereitstellen. Check [hier] (http://stackoverflow.com/help/mcve) – Aramis7d

Antwort

0

Es ist im Grunde, was der Fehler sagt - Im zweiten Beispiel, Sie bieten 2 Gruppen (probs = c (.3, .7)), was weniger ist als die Menge an Etiketten, die Sie bereitstellen (c ("L", "M", "B"))

Beachten Sie, dass in Ihrem ersten Code-Schnipsel, Seq (0,1, von = 0,5) Sie erzeugen drei verschiedene Werte (0.0, 0.5, 1.0)

So können Sie entweder einen anderen Cutoff-Punkt hinzufügen, oder ein Etikett entfernen .

+0

Vielen Dank war sehr hilfreich Ich finde die Antwort, BTM_UK $ '1992' <- mit (BTM_UK, Schnitt (BTM_UK $ '1992', Brüche = Quantil (BTM_UK $ '1992', probs = c (0, .3, .7,1), na.rm = WAHR), include.lowest = TRUE, Labels = c (" L "," M "," B "))) –

Verwandte Themen