【问题标题】:Deriving contingency table from a bigger contingency table in R从R中更大的列联表派生列联表
【发布时间】:2014-09-30 07:21:16
【问题描述】:

我有一个用python语言制作的csv格式列联表,像这样:

            case  control
disease_A    20    30 
disease_B    35    45
disease_C    42    52
disease_D    52    62

现在我想从这个列联表中导出 2x2 列联表,以使用 R 计算卡方值

我怎样才能从上面的列联表中导出一个如下所示的 2x2 表:

            case  control
disease_A    20    30 
disease_D    52    62

这可能是一个新手问题,但我是 R 新手,我在其他任何地方都找不到解决方案

【问题讨论】:

    标签: r contingency


    【解决方案1】:

    这是一种方法。

    数据:

    txt <-  "           case  control
    disease_A    20    30 
    disease_B    35    45
    disease_C    42    52
    disease_D    52    62"
    

    读取数据:

    dat <- read.table(textConnection(txt))
    #           case control
    # disease_A   20      30
    # disease_B   35      45
    # disease_C   42      52
    # disease_D   52      62
    

    提取行的子集:

    dat2 <- dat[rownames(dat) %in% c("disease_A", "disease_D"), ]
    #           case control 
    # disease_A   20      30
    # disease_D   52      62
    

    【讨论】:

    • 感谢您的回答,您能解释一下为什么末尾有逗号吗?我试过没有它,它没有用!
    • @user3015703 如果您在数据框中使用不带逗号的函数[,它将返回指定的列。如果使用逗号,[ 的两个参数是行和列。例如,dat[1:3, 2:5] 将返回第 2 到第 5 列的前三行。
    【解决方案2】:

    如果M 属于table

    M <- structure(c(20, 35, 42, 52, 30, 45, 52, 62), .Dim = c(4L, 2L), .Dimnames = list(
    c("disease_A", "disease_B", "disease_C", "disease_D"), c("case", 
    "control")), class = "table")
    
    
    
    xtabs(Freq~Var1+Var2,data= subset(as.data.frame(M,stringsAsFactors=F),
                       Var1%in% c("disease_A", "disease_D")))
               Var2
     Var1        case control
      disease_A   20      30
      disease_D   52      62
    

    如果Mdata.frame

     M <- structure(list(case = c(20L, 35L, 42L, 52L), control = c(30L, 
     45L, 52L, 62L)), .Names = c("case", "control"), class = "data.frame", row.names =   c("disease_A", 
     "disease_B", "disease_C", "disease_D"))
    
     as.table(as.matrix(M[grep("A|D", rownames(M)),]))
    

    【讨论】:

      猜你喜欢
      • 2016-05-15
      • 2017-03-17
      • 2021-05-09
      • 1970-01-01
      • 2018-02-12
      • 2013-08-14
      • 2016-07-03
      • 2020-10-06
      • 1970-01-01
      相关资源
      最近更新 更多