Je veux diviser un vecteur selon données (ou seuils pauses) dans des bacs à R.R - Ordre inverse avec coupe
Cela peut se faire comme suit:
numbers <- 1:10
cutoffs <- c(0,2,6,7,10, Inf)
data.frame(data = numbers, bins = as.integer(cut(numbers, breaks = cutoffs, right = FALSE)))
Cela se traduira les suivantes:
data bins
1 1 1
2 2 2
3 3 2
4 4 2
5 5 2
6 6 3
7 7 4
8 8 4
9 9 4
10 10 5
Cependant, ce que je veux est pour la plus faible valeur pour être au plus haut bin et vice versa. Donc, en quelque sorte, je veux réaliser ce qui suit à la place:
data bins
1 1 5
2 2 4
3 3 4
4 4 4
5 5 4
6 6 3
7 7 2
8 8 2
9 9 2
10 10 1
J'ai essayé de nombreuses combinaisons avec 'rev() pour inverser la séquence. Mais gardez à l'esprit que je ne peux pas simplement inverser les résultats de la commande précédente, car ils sont asymétriques.
Je me rends compte qu'il pourrait y avoir une solution simple à cela, mais pour une raison quelconque, il ne cesse de me échapper. Des suggestions dans quelle direction je devrais regarder?
Couldn » t vous soustrayez les «bacs» d'origine de 6? –
vous pourriez utiliser l'argument 'labels' ..' as.integer (as.character (couper (nombres, sauts = seuils, étiquettes = 5: 1, droite = FAUX))) ' – user20650
@db que .. fait l'affaire .. Merci pour ça! J'étais trop concentré sur l'utilisation de la coupe seule pour cela que j'ai oublié quelque chose d'aussi simple que ça. –