【问题标题】:R: arguments in table command must all have the same lengthR:表命令中的参数必须都具有相同的长度
【发布时间】:2016-11-11 00:17:05
【问题描述】:
> 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

有没有另一种方法来构建一个向量长度不同的分类数据表?

【问题讨论】:

    标签: r


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2019-05-04
      • 1970-01-01
      • 2021-07-12
      • 2017-06-22
      • 1970-01-01
      • 2019-12-19
      • 2015-06-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多