2012-10-09 15 views
5

Ejemplo:cómo crear 3 por 3 Tabla de contingencia con dos variables en I

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 

Mi pregunta es:

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 

Quiero conseguir una mesa 3X3 con el mismos nombres, renombres y dimensiones como el ejemplo anterior. Luego aplicaré chisq.test para la tabla. ¡Muchas gracias por sus respuestas!

Respuesta

6

Puede lograr esto convirtiendo a y b en factores con los mismos niveles. Esto funciona porque los vectores de factores realizan un seguimiento de todos los valores posibles (niveles aka) que sus elementos pueden tomar, incluso cuando de hecho contienen solo un subconjunto de ellos.

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

Muchas gracias, Josh. Entiendo. – Matt

Cuestiones relacionadas