2012-04-27 10 views
0

J'ai un data.frame avec une colonne dont les valeurs vont de 0 à 50.000. Je veux créer créer 5 catégories pour ces données afin de le tracer dans un histogramme catégorisé.Comment tracer un histogramme catégorisé à partir d'une colonne R data.frame avec des valeurs brutes

Ce que je veux faire est de créer une colonne qui me dit quelle est la catégorie à laquelle cette valeur appartient pour la tracer. Par exemple, j'ai décidé de créer les catégories suivantes: [1,3] (3,6] (6,12] (12,30] (30,50000)

Est-ce possible? ? est-ce que j'utilise normalement bibliothèque ggplot2 pour les parcelles

Merci à l'avance

+0

Utilisez 'cut' pour faire exactement cela. – Andrie

+1

duplication possible de [R ajoutant colonne qui contient la valeur bin d'une autre colonne] (http://stackoverflow.com/questions/5570293/r-adding-column-which-contains-bin-value-of-another-column) – Andrie

+1

@biojl Voici quelques réponses précédentes de cette même question: [Créer une variable catégorielle dans R basé sur la plage] (http://stackoverflow.com/questions/2647639/create-categorical-variable-in-r-based-on-range) –

Répondre

1

Voir ?cut Voici un exemple:...

set.seed(42) 
dat <- data.frame(Values = sample.int(50000, size = 100)) 
## create factor indicating which categoriesy data are in  
grps <- with(dat, cut(Values, breaks = c(1,3,6,12,30,50000))) 

Cela donne:

> head(grps) 
[1] (30,5e+04] (30,5e+04] (30,5e+04] (30,5e+04] (30,5e+04] (30,5e+04] 
Levels: (1,3] (3,6] (6,12] (12,30] (30,5e+04] 
> table(grps) 
grps 
    (1,3]  (3,6]  (6,12] (12,30] (30,5e+04] 
     0   0   1   0   99 

Si vous voulez que dans le cadre de données, essayez ceci:

dat2 <- within(dat, Groups <- cut(Values, breaks = c(1,3,6,12,30,50000))) 

qui se traduit par

> head(dat2) 
    Values  Groups 
1 45741 (30,5e+04] 
2 46853 (30,5e+04] 
3 14307 (30,5e+04] 
4 41520 (30,5e+04] 
5 32085 (30,5e+04] 
6 25953 (30,5e+04] 

Vous pouvez modifier les niveaux des facteurs résultants si vous voulez donner différentes étiquettes pour eux.

+0

Génial! Exactement ce dont j'avais besoin – biojl

Questions connexes