如何使用R中的两个变量创建3乘3列联表

时间:2012-10-09 18:49:53

标签: 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

我的问题是:

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

我希望获得一张3X3表,其中相同的名称,rownames和维度如上例所示。然后我将chisq.test应用于表格。 非常感谢您的回答!

1 个答案:

答案 0 :(得分:6)

您可以通过将ab转换为具有相同级别的因子来实现此目的。这是因为因子向量跟踪其元素可能采用的所有可能值(也称为级别),即使它们实际上只包含其中的一部分。

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