2016-11-11 1281 views
1
> table(X = c(1, 0, 1, 0, 1), Y = c(1, 1, 1)) 
Error in table(X = c(1, 0, 1, 0, 1), Y = c(1, 1, 1)) : 
    all arguments must have the same length 

嘗試運行table命令時遇到此錯誤。但是,我不明白爲什麼不能構建這樣的表格?R:表格命令中的參數必須全部具有相同的長度

0 1 
X 2 3 
Y 0 3 

是否有另一種方法來構建一個分類數據的表,其中矢量的長度不一樣?

回答

2

table字面上需要兩個相同長度的變量進行製表。這與SAS,SPSS,Stata,Excel等中的類似頻率/數據透視/表格功能相同。您需要兩列 - 一列顯示來源(X或Y),另一列顯示值(0或1)。

X <- c(1, 0, 1, 0, 1) 
Y <- c(1, 1, 1) 
source <- rep(c("X","Y"), c(length(X), length(Y))) 
value <- c(X,Y) 

table(source,value) 
#  value 
#source 0 1 
#  X 2 3 
#  Y 0 3 

這樣做有一些棘手的方法,但這可能是最直接的。想到的一種選擇是:

table(stack(list(X=X,Y=Y))) 
#or 
table(stack(mget(c("X","Y")))) 
相關問題