2016-11-11 54 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")))) 
相关问题