> 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
命令时遇到此错误。但是,我不明白为什么不能构建这样的表?
0 1
X 2 3
Y 0 3
是否有另一种方法可以构建一个分类数据表,其中向量的长度不同?
答案 0 :(得分:2)
table
字面上需要两个相同长度的变量来制表。这与SAS,SPSS,Stata,Excel等中的类似频率/枢轴/表格功能相同。您需要两列 - 一列显示源(X或Y),另一列显示值(0或1)。 / p>
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"))))