2013-11-04 48 views
1

有沒有辦法強制R的table函數包含行或列,即使它們從未出現在數據中?例如,如何強制在R表中包含一個關卡?

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 

回答

4

您需要將您的向量轉換爲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 
相關問題