2011-12-11 6 views
6

Questa è la mia prima domanda, e sono abbastanza nuovo per R e non sono stato in grado di trovare come farlo.Ottenere tabella() per restituire gli zeri in R

Quindi ottengo alcuni numeri che voglio mettere nella tabella delle frequenze.

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 

Quando uso la funzione table(X), ho qualcosa che assomiglia

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 

Che lascia i valori 9 e 10! Sto cercando di far apparire i valori 9, 10 con il conteggio zero.

Ho provato a utilizzare xtabs e tapply, ma non sono sicuro di come farlo.

risposta

8

non ho ancora testato questo, ma credo che si desidera

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

per essere un po 'più generale è possibile utilizzare livelli = min (x): max (x) e aggiungere la gestione dei valori mancanti ecc. – mdsumner

0

È inoltre possibile aggirare questo con la funzione tabulate, aggiungendo una costante per tenere conto di zeri.

> 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 
Problemi correlati