从R中较大的列联表导出列联表
我有一个由python语言制作的csv格式列联表,如下所示:从R中较大的列联表导出列联表,r,contingency,R,Contingency,我有一个由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
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还是新手,我在其他任何地方都找不到解决方案
数据:
txt <- " case control
disease_A 20 30
disease_B 35 45
disease_C 42 52
disease_D 52 62"
txt如果M
属于表类
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
谢谢你的回答,你能解释一下为什么结尾有逗号吗?我试着不用它,但它不起作用@user3015703如果在数据帧上使用函数[
而不使用逗号,它将返回指定的列。如果使用逗号,[
的两个参数是行和列。例如,dat[1:3,2:5]
将返回列2到5的前三行。
dat2 <- dat[rownames(dat) %in% c("disease_A", "disease_D"), ]
# case control
# disease_A 20 30
# disease_D 52 62
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
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)),]))