你怎么能强制纳入的水平作为R表?(How can you force inclusion of a

2019-09-26 08:02发布

有没有一种方法,以力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

Answer 1:

您需要将向量转换成factor S,具有所有的每个向量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


文章来源: How can you force inclusion of a level in a table in R?
标签: r contingency