【问题标题】:Contingency table once against multiple table列联表一次针对多个表
【发布时间】:2015-08-17 03:57:39
【问题描述】:

我有一张如下表:

V1  V2  V3  V4  V5  V6  V7  V8  V9 V10
fve fve fve fve fve fve fve fve mdm mdm
mdm fve fve fve fve fve fve fve fve fve
fve fve fve fve fve fve fve fve fve fve
mdm fve fve fve fve fve fve fve fve fve
fve fve fve fve fve fve fve fve fve fve

我想将第 1 列的频率与所有的频率相比较,得到如下结果:

    fve mdm
fve 25  2
mdm 18  0

有可能吗?我尝试使用table()ftable(),但输出与我的预期不符。

【问题讨论】:

  • table(unlist(df1[-1])) 得到输出
  • 请说明您是如何从原始表格中获得结果中的数字的。
  • 示例第 1 行:fve fve fve fve fve fve fve fve mdm mdm 你有 2 个变量 fve 和 mdm。参考文献是第一列,所以你有:fve vs fve = 7 and fve vs mdm = 2

标签: r contingency


【解决方案1】:

对于修改后的问题:

> tapply(unlist(dat[-1]), rep(dat[[1]], length(dat[-1])), table)
$fve

fve mdm 
 25   2 

$mdm

fve mdm 
 18   0 

我想您可以在这些值上运行 do.call(rbind, ...) 以获得所需的表:

【讨论】:

  • 这将包装列。这不完全是我的意思。请提供我的问题的版本。
  • 您应该始终提供具有测试所需复杂性的数据对象。
【解决方案2】:

略有不同的选项是

table(df1[,1][row(df1[-1])], unlist(df1[-1])) 
#     fve mdm
# fve  25   2
# mdm  18   0

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-03
    • 1970-01-01
    • 1970-01-01
    • 2017-10-27
    • 2017-08-29
    相关资源
    最近更新 更多