你如何强制在R中的表中包含一个级别?

And*_*ele 1 r contingency

是否有办法强制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)
Run Code Online (Sandbox Code Playgroud)

回报

      data.2
data.1  1 3 4
      1 1 2 0
      2 1 1 1
      4 1 0 0
Run Code Online (Sandbox Code Playgroud)

行中缺少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
Run Code Online (Sandbox Code Playgroud)

A5C*_*2T1 5

您需要将矢量转换为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
Run Code Online (Sandbox Code Playgroud)