首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从R中较大的列联表推导出列联表

从R中较大的列联表推导出列联表
EN

Stack Overflow用户
提问于 2014-08-07 06:52:30
回答 2查看 233关注 0票数 0

我有一个由python语言制作的csv格式应急表,如下所示:

代码语言:javascript
复制
            case  control
disease_A    20    30 
disease_B    35    45
disease_C    42    52
disease_D    52    62

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

如何从上面的应急表导出2x2表,如下所示:

代码语言:javascript
复制
            case  control
disease_A    20    30 
disease_D    52    62

这可能是个新手的问题,但我对R并不熟悉,我在其他地方也找不到解决办法

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-08-07 06:58:13

这里有个方法。

数据:

代码语言:javascript
复制
txt <-  "           case  control
disease_A    20    30 
disease_B    35    45
disease_C    42    52
disease_D    52    62"

阅读数据:

代码语言:javascript
复制
dat <- read.table(textConnection(txt))
#           case control
# disease_A   20      30
# disease_B   35      45
# disease_C   42      52
# disease_D   52      62

提取行的子集:

代码语言:javascript
复制
dat2 <- dat[rownames(dat) %in% c("disease_A", "disease_D"), ]
#           case control 
# disease_A   20      30
# disease_D   52      62
票数 1
EN

Stack Overflow用户

发布于 2014-08-07 07:06:29

如果M属于table

代码语言:javascript
复制
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

代码语言:javascript
复制
 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)),]))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25175935

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档