r - 循环遍历数据框以提取 R 中值大于阈值的特定对
问题描述
我有一个不同基因对之间的 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
推荐阅读
- python - 将文件拆分为列表后删除空格
- angular - @viewChild 不触发模态弹出并抛出错误 triggerModal 不是一个函数 - Angular
- javascript - 如何从 Promise 函数返回值
- android - 如何使 Fragment + Firebase firestore 工作而不泄漏资源(在 Android 中)?
- mysql - XAMPP-MYSQL 意外关闭
- machine-learning - Flink 中序列化复杂模型的最佳实践
- here-api - Transit API 如何获取特定路线服务的所有站点?
- python - 如何在python中迭代给定一天的几个小时?
- html - 如何在 CSS 中使用边框制作管道
- postgresql - 如何将 Postgres pgBlob 转换为 SerialBlob?