在 2-way frequency/contingency table 中包含零频率

Include zero frequencies in 2-way frequency/contingency table

我正在尝试使用 R 中的 table() 对两个整数变量进行意外事件(频率)table,但 table 中的默认选项不包括所有每个范围内的值。例如:

a=c(1,2,3,5)
b=c(1,1,2,3)
table(a,b)

returns:

  1 2 3
1 1 0 0
2 1 0 0 
3 0 1 0
5 0 0 1

我希望它给:

  1 2 3
1 1 0 0
2 1 0 0 
3 0 1 0
4 0 0 0
5 0 0 1

这是一个简单示例,其中值“4”不在其中一个向量中。我知道我可以将它操作成一个数组并添加一行零,但我想知道当变量可能跨越数百个(稀疏)整数值时是否有更简单的方法自动执行此操作。

获得这个的方法是

a=factor(c(1,2,3,5), levels=1:5)
b=factor(c(1,1,2,3), levels=1:5)
table(a,b)