提取R中
只有一张桌子的某些行我有一个表格式如下:提取R中
我想写A R脚本,将“提取”从表例如案件有c2 == 1,(c2和c3)== 1,(c2和c4)== 1,(c1和c2和c3)== 1,等等...... 这样最终我会拥有一个具有每种情况的Counts值的列表。
实施例列表中具有C2 == 1列: C2 < -c(4,42,12,...)
我试图将其上这种方式:totalC2 < -table [表[ c1]],如果我使用表$ c1 == 1它不起作用。
任何人都可以给我一个建议如何解决这个问题?
我忘了提,该表来自于功能: vennCounts()
在您将命名为相应的计数表的输出。但也许用更清晰和直接的解决方案可以取得相同的结果。让我们拭目以待另一个答案。
# data simulation
c1 <- sample(c(0,1), 10, replace=T)
c2 <- sample(c(0,1), 10, replace=T)
c3 <- sample(c(0,1), 10, replace=T)
c4 <- sample(c(0,1), 10, replace=T)
Counts <- sample(1:100, 10)
df <- data.frame(c1, c2,c3, c4, Counts)
f <- function(y) {
idx <- apply(df[,y, drop=F], 1, function(x) all(x == 1))
df[idx, "Counts"]
}
out <- list()
l <- sapply(1:4, function(x) {combn(x=c("c1", "c2", "c3", "c4"), m=x, simplify=F)})
l <- unlist(l, recursive=F)
for (x in l) {
out[[paste(x, collapse="")]] <- f(x)
}
我无法将我的表格转换为数据框架,因为使用函数vennCounts得到该表格 – 2012-04-17 08:43:32
此代码是否会为您的数据产生错误?我不熟悉bioconductor软件包。但是为什么你不能将这个表格转换为矩阵或data.frame?转换期间您收到错误消息? – DrDom 2012-04-17 09:10:54
是的,我得到一个错误:“不能胁迫类'”VennCounts“'到一个data.frame” – 2012-04-17 09:14:40
如果我正确理解的问题,有在'C2 == 1印错像C2 DrDom 2012-04-17 09:47:15