2012-10-09 8 views
5

Esempio:come creare 3 da 3 tabella di contingenza con due variabili in R

x <- c(1, NA, 0, 1) 
y <- c(NA, NA, 0, 1) 
table(x,y, useNA="always") # ---> 
#  y 
# x  0 1 <NA> 
# 0 1 0 0 
# 1 0 1 1 
# <NA> 0 0 1 

La mia domanda è:

a <- c(NA, NA, NA, NA) 
b <- c(1, 1, 1, 1) 
table(a, b, useNA="always") ## --> It is 1X2 matrix. 
#  b 
# a  1 <NA> 
# <NA> 4 0 

voglio ottenere un tavolo 3X3 con il stessi colnames, rownames e dimensioni come nell'esempio sopra .. Allora applicherò chisq.test per la tabella. Grazie mille per le vostre risposte!

risposta

6

È possibile ottenere questo convertendo sia a e b in fattori con gli stessi livelli. Questo funziona perché i vettori di fattori tengono traccia di tutti i possibili valori (ovvero i livelli) che potrebbero assumere i loro elementi, anche se in realtà contengono solo un sottoinsieme di quelli.

a <- c(NA, NA, NA, NA) 
b <- c(1, 1, 1, 1) 

levs <- c(0, 1) 

table(a = factor(a, levels = levs), 
     b = factor(b, levels = levs), 
     useNA = "always") 
#  b 
# a  0 1 <NA> 
# 0 0 0 0 
# 1 0 0 0 
# <NA> 0 4 0 
+0

Mille grazie, Josh. Capito. – Matt