我在各种基因对之间都有一个z得分的数据框。数据框如下所示:
df <- data.frame(geneID=c("CDKN2A", "JUN", "IRS2","MTOR",
"NRAS"),
ABL1=c(-0.19,NA,2.01,0.4,1.23),
AKT1=c(0.11,2.45,NA,NA,1.67),
AKT2=c(1.19,NA,2.41,0.78,1.93),
AKT3=c(2.78,NA,NA,0.7,2.23),
ALK=c(NA,NA,NA,2.4,1.23))
我想过滤大于2的z分数,并以以下格式将其输出到单独的数据帧中:
gene1 gene2 z-score
IRS2 ABL1 2.01
JUN AKT1 2.45
CDKN2A AKT3 2,78
NRAS AKT3 2.23
MTOR ALK 2.4
我试图过滤掉行和列,但事实证明,我丢失了一些满足阈值2的值。表的维数为18215行和270列。
我将不胜感激任何帮助或建议!
非常感谢你!奥尔哈
这是另一个基本的R选项
inds <- which(df[-1] > 2, arr.ind = TRUE)
dfout <- data.frame(
gene1 = df$geneID[inds[, "row"]],
gene2 = names(df[-1])[inds[, "col"]],
z_score = df[-1][inds]
)
这样
> dfout
gene1 gene2 z_score
1 IRS2 ABL1 2.01
2 JUN AKT1 2.45
3 IRS2 AKT2 2.41
4 CDKN2A AKT3 2.78
5 NRAS AKT3 2.23
6 MTOR ALK 2.40
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句