2016-07-05 36 views
7

Ecco i miei daticalcolare la frequenza di R

> a 
[1] Male Male Female Male Male Male Female Female Male Male Female Male Male Male 
[15] Female Female Female Male Female Male Female Male Male Female Male Male Female Male 
[29] Male Male Female Male Male Male Female Female Male Male Male Male Male 
Levels: Female Male 

> b 
[1] 0 1 0 1 0 0 0 0 1 1 1 1 0 1 0 0 0 1 0 0 1 0 0 0 1 1 1 0 0 0 0 1 1 0 0 1 0 1 1 1 1 
Levels: 0 1 

> table(a,b) 
     b 
a   0 1 
      0 0 
    Female 10 4 
    Male 12 15 

Non so il motivo per cui il risultato di table(a,b) ha una fila di (0 0), il mio risultato atteso è la seguente:

> table(a,b) 
     b 
a   0 1 
    Female 10 4 
    Male 12 15 

Potrebbe dimmi perché questo succede e come correggerlo, grazie!

> dput(a) 
structure(c(3L, 3L, 2L, 3L, 3L, 3L, 2L, 2L, 3L, 3L, 2L, 3L, 3L, 
3L, 2L, 2L, 2L, 3L, 2L, 3L, 2L, 3L, 3L, 2L, 3L, 3L, 2L, 3L, 3L, 
3L, 2L, 3L, 3L, 3L, 2L, 2L, 3L, 3L, 3L, 3L, 3L), .Label = c("", 
"Female", "Male"), class = "factor") 

> dput(b) 
structure(c(1L, 2L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 1L, 
2L, 1L, 1L, 1L, 2L, 1L, 1L, 2L, 1L, 1L, 1L, 2L, 2L, 2L, 1L, 1L, 
1L, 1L, 2L, 2L, 1L, 1L, 2L, 1L, 2L, 2L, 2L, 2L), .Label = c("0", 
"1"), class = "factor") 
+0

sono la lunghezza di 'a' e' B' lo stesso? – Psidom

+8

potresti avere livelli di emptty di un "" ". Prova 'nlevels (a)' – user20650

+0

@Psidom yes, la lunghezza di 'a' e' b' è la stessa – lightsnail

risposta

1

Dalle osservazioni di cui sopra:

Questo sta accadendo perché c'è un livello di fattore vuoto in a:

> levels(a) 
[1] ""  "Female" "Male" 

È possibile mantenere produrre una tabella che non tiene conto dei livelli di fattore vuote (da @ il commento di lmo):

table(as.character(a), b) 

In alternativa, è possibile rimuovere facilmente i livelli di fattore senza osservazioni (da @ commento di Dave2e)

a <- droplevels(a) 
table(a, b)