【问题标题】:How can you force inclusion of a level in a table in R?你如何强制在 R 的表中包含一个级别?
【发布时间】:2013-11-15 09:48:46
【问题描述】:

有没有办法强制 R 的 table 函数包含行或列,即使它们从未出现在数据中?例如,

data.1 <- c(1, 2, 1, 2, 1, 2, 4)
data.2 <- c(1, 4, 3, 3, 3, 1, 1)

table(data.1, data.2)

返回

      data.2
data.1  1 3 4
      1 1 2 0
      2 1 1 1
      4 1 0 0

行中缺少 3,列中缺少 2,因为它们没有出现在数据中。

是否有一种简单的方法可以强制将额外的零行和列插入正确的位置,而不是返回以下内容?

      data.2
data.1  1 2 3 4
      1 1 0 2 0
      2 1 0 1 1
      3 0 0 0 0
      4 1 0 0 0

【问题讨论】:

    标签: r contingency


    【解决方案1】:

    您需要将向量转换为factors,每个向量都包含您想要包含在输出中的所有levels

    levs <- sort(union(data.1, data.2))
    table(factor(data.1, levs), factor(data.2, levs))
    #    
    #     1 2 3 4
    #   1 1 0 2 0
    #   2 1 0 1 1
    #   3 0 0 0 0
    #   4 1 0 0 0
    

    【讨论】:

      猜你喜欢
      • 2014-05-27
      • 2021-12-02
      • 1970-01-01
      • 2015-07-30
      • 1970-01-01
      • 2017-09-21
      • 1970-01-01
      • 1970-01-01
      • 2015-04-20
      相关资源
      最近更新 更多