2011-12-11 11 views
6

Esta es mi primera pregunta, y soy bastante nuevo en R y no he podido encontrar cómo hacerlo.Obteniendo tabla() para devolver ceros en R

Así obtengo algunos números que quiero poner en la tabla de frecuencias.

12 0 12 2 1 14 1 1 0 3 1 2 8 0 1 3 11 1 1 8 8 8 0 4 4 
2 6 1 1 4 1 1 7 0 6 4 6 1 1 1 1 2 4 2 3 7 3 1 1 7 
0 0 11 8 1 5 0 5 6 0 0 0 13 1 1 5 2 7 2 1 7 3 4 4 2 
4 0 4 4 0 4 0 2 1 1 1 0 5 6 1 4 1 5 3 3 4 0 3 1 0 

Cuando utilizo la función table(X), me sale algo que se parece

X 
0 1 2 3 4 5 6 7 8 11 12 13 14 

17 27 9 8 13 5 5 5 5 2 2 1 1 

que deja fuera los valores 9 y 10! Estoy tratando de hacer que los valores 9, 10 aparezcan con cero recuento.

He intentado usar xtabs y tapply, pero no estoy seguro de cómo hacer esto.

Respuesta

8

no he probado esto, pero creo que usted quiere

table(factor(x, levels = 0:14)) 
+0

para ser un poco más general, podría usar levels = min (x): max (x), y agregar el manejo de valores faltantes, etc. – mdsumner

0

También puede evitar esto con la función tabulate, añadiendo una constante para dar cuenta de ceros.

> tt <- tabulate(x+1) 
> names(tt) <- 0:14 
> tt 
# 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 
# 17 27 9 8 13 5 5 5 5 0 0 2 2 1 1 
Cuestiones relacionadas