【问题标题】:Generating a summary table in R在 R 中生成汇总表
【发布时间】:2014-02-07 18:42:33
【问题描述】:

让我们考虑以下字符向量:

M1 = c("Variable_1", "Variable_2", "Variable_3")
M2 = c("Variable_2", "Variable_4", "Variable_5")
M3 = "Variable_3"
M4 = c("Variable_1", "Variable_2", "Variable_3", "Variable_4", "Variable_5")

我想知道 R 中是否有任何工具/功能允许我根据 M1M2 的值生成下表em>、M3M4,然后绘制表格:

任何帮助将不胜感激!谢谢!

【问题讨论】:

    标签: r plot viewport


    【解决方案1】:

    此命令创建一个包含 0 和 1 的表。

    table(do.call(rbind, lapply(c("M1", "M2", "M3", "M4"), function(x)
      data.frame(ind = x, var = get(x)))))
    
        var
    ind  Variable_1 Variable_2 Variable_3 Variable_4 Variable_5
      M1          1          1          1          0          0
      M2          0          1          0          1          1
      M3          0          0          1          0          0
      M4          1          1          1          1          1
    

    如果你真的想拥有xs,你可以使用:

    tab <- table(do.call(rbind, lapply(c("M1", "M2", "M3", "M4"), function(x)
      data.frame(ind = x, var = get(x)))))
    
    replace(replace(tab, as.logical(tab), "x"), !tab, "")
    
        var
    ind  Variable_1 Variable_2 Variable_3 Variable_4 Variable_5
      M1 x          x          x                               
      M2            x                     x          x         
      M3                       x                               
      M4 x          x          x          x          x  
    

    根据您的评论。如何摆脱varind以及如何使用列表:

    LL <- list(M1, M2, M3, M4)
    
    tab <- table(do.call(rbind, lapply(seq_along(LL), function(x)
      data.frame(ind = x, var = LL[[x]]))))
    
    dimnames(tab) <- unname(dimnames(tab))
    
    replace(replace(tab, as.logical(tab), "x"), !tab, "")
    
        Variable_1 Variable_2 Variable_3 Variable_4 Variable_5
    1 x          x          x                               
    2            x                     x          x         
    3                       x                               
    4 x          x          x          x          x         
    

    【讨论】:

    • 谢谢斯文。不幸的是,我更多的是寻找“x”或复选标记......
    • 谢谢斯文,太完美了!后续的小问题:如果我的向量 M1 到 M4 实际上是列表的元素(即 list[[1]] 是 M1,list[[2]] 是 M2,...)怎么办?如何使用您的table() 方法?
    • @Mariam 列表元素有名称吗?
    • 不,他们没有。另外,有没有办法摆脱决赛桌中的“ind”和“var”标签?我打算用 pdf 格式打印这张表,我宁愿没有那些标签……
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多