2009-10-24 5 views
24

J'ai un vecteur d'entiers compris entre 0 et 5. Je veux calculer un histogramme des nombres. Par exemple:Inclure les valeurs manquantes dans table() donne R

y <- c(0, 0, 1, 3, 4, 4) 
table(y) 
# y 
# 0 1 3 4 
# 2 1 1 2 

Cependant, je veux aussi les résultats, notamment le fait qu'il ya zéro 2 et de zéro 5 de, par exemple. Je veux que le vecteur retourné ait la longueur 6. Puis-je utiliser table() pour cela?

Résultat souhaité:

# y 
# 0 1 2 3 4 5 
# 2 1 0 1 2 0 

Répondre

35

Convertissez votre variable à un factor et définissez les catégories que vous souhaitez inclure dans le résultat en utilisant levels. Les valeurs avec un nombre de zéro apparaîtront alors dans le résultat:

y <- c(0, 0, 1, 3, 4, 4) 
table(factor(y, levels = 0:5)) 
# 0 1 2 3 4 5 
# 2 1 0 1 2 0 
Questions connexes