遍历数据帧以提取值大于R中阈值的特定对

奥尔哈·霍洛德(Olha Kholod)

我在各种基因对之间都有一个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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章