R:table命令中的参数必须都具有相同的长度

时间:2016-11-11 00:17:06

标签: r

> 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

是否有另一种方法可以构建一个分类数据表,其中向量的长度不同?

1 个答案:

答案 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"))))