【问题标题】:how to create 3 by 3 Contingency table with two variables in R如何在 R 中使用两个变量创建 3 x 3 列联表
【发布时间】:2012-10-09 18:49:52
【问题描述】:

示例:

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 表,其 列名、行名和维度 与上面的示例相同。然后我将为该表应用 chisq.test。 非常感谢您的回答!

【问题讨论】:

    标签: r


    【解决方案1】:

    您可以通过将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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多