2016-07-05 24 views
7

Hier berechnen sind meine Datendie Frequenz in 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 

Ich weiß nicht, warum das Ergebnis table(a,b) eine Reihe von (0 0) hat, ist mein erwartetes Ergebnis wie folgt:

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

Könnte Sie sagen mir, warum das passiert und wie Sie es korrigieren können, danke!

> 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

Sind die Länge von 'a' und 'b' die gleiche entfernen? – Psidom

+8

haben Sie möglicherweise leere Ebenen eines ie '" "'. Versuchen Sie 'nlevels (a)' – user20650

+0

@Psidom ja, die Länge von 'a' und' b' ist das selbe – lightsnail

Antwort

1

Aus dem obigen Ausführungen:

Dies geschieht, weil eine leere Faktor Ebene ist in a:

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

Sie können eine Tabelle halten produzieren, die leer Faktorstufen absieht (von @ lmo's Kommentar):

table(as.character(a), b) 

Alternativ können Sie leicht Faktorstufen ohne Beobachtungen (von @ Dave2e Kommentar)

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