r - 在特定列中保留具有值的行?
问题描述
我有一个如下表,它合并了多个数据,我希望只保留在“-log10.qvalue”列中显示值的行。
输入:
chr_enhancer Start_enhancer End_enhancer source_enhancer.x source_marks.x -log10.qvalue.x source_enhancer.y -log10.qvalue.y source_enhancer -log10.qvalue
chr1 100036100 100036650 Reilly_Hu_12Opcw_H3K4me2_rep1_2_merge . . Reilly_Hu_12Opcw_H3K4me2_rep1_2_merge . Reilly_Hu_12Opcw_H3K4me2_rep1_2_merge .
chr1 100042226 100043575 Reilly_Hu_12Fpcw_H3K4me2_rep1_2_merge Fetalbrain.H3K4me1_narrow_peak_2501 2.145 Reilly_Hu_12Fpcw_H3K4me2_rep1_2_merge . Reilly_Hu_12Fpcw_H3K4me2_rep1_2_merge 1.254
chr1 100042310 100043300 enhancer_atlas_Fetal_brain Fetalbrain.H3K4me1_narrow_peak_2501 5.145 enhancer_atlas_Fetal_brain 1.356 enhancer_atlas_Fetal_brain 6.325
输出:
chr1 100042310 100043300 enhancer_atlas_Fetal_brain Fetalbrain.H3K4me1_narrow_peak_2501 5.145 enhancer_atlas_Fetal_brain 1.356 enhancer_atlas_Fetal_brain 6.325
解决方案
首先使用 'grepl' 让所有列开始,log10.
然后使用.
最后,返回行.
na
apply
sum(x=='.'| is.na(x))==0
df[apply(df[,grepl('log10.',names(df))],1,function(x)sum(x=='.'| is.na(x))==0),]
chr_enhancer Start_enhancer End_enhancer source_enhancer.x source_marks.x X.log10.qvalue.x
3 chr1 100042310 100043300 enhancer_atlas_Fetal_brain Fetalbrain.H3K4me1_narrow_peak_2501 5.145
source_enhancer.y X.log10.qvalue.y source_enhancer X.log10.qvalue
3 enhancer_atlas_Fetal_brain 1.356 enhancer_atlas_Fetal_brain 6.325
数据
df <- read.table(text="chr_enhancer Start_enhancer End_enhancer source_enhancer.x source_marks.x -log10.qvalue.x source_enhancer.y -log10.qvalue.y source_enhancer -log10.qvalue
chr1 100036100 100036650 Reilly_Hu_12Opcw_H3K4me2_rep1_2_merge . . Reilly_Hu_12Opcw_H3K4me2_rep1_2_merge . Reilly_Hu_12Opcw_H3K4me2_rep1_2_merge .
chr1 100042226 100043575 Reilly_Hu_12Fpcw_H3K4me2_rep1_2_merge Fetalbrain.H3K4me1_narrow_peak_2501 2.145 Reilly_Hu_12Fpcw_H3K4me2_rep1_2_merge . Reilly_Hu_12Fpcw_H3K4me2_rep1_2_merge 1.254
chr1 100042310 100043300 enhancer_atlas_Fetal_brain Fetalbrain.H3K4me1_narrow_peak_2501 5.145 enhancer_atlas_Fetal_brain 1.356 enhancer_atlas_Fetal_brain 6.325
",header=T)
推荐阅读
- javascript - 在javascript中定义具有不同参数列表的函数是一种好习惯吗?
- java - 使用 Jersey 的 REST API 上的 POST 请求未更新存储库中的列表,即未添加已发布的新对象
- sql - SQL查询获取每个员工的第一拳和最后一拳
- recursion - 需要帮助解决不平衡的递归树问题
- sql-server - 基于复杂静态 SQL 迭代所有列的动态 SQL
- ios - 使用版本 Xcode 11.4 构建 Xcode 项目时反复出错
- vaadin - 在 Vaadin Flow 中更改组件图标
- swift - TableView 创建重复单元格
- java - java.lang.NoSuchMethodError: 'com.google.api.client.json.JsonParser
- python - tensorflow v1 可以用于部署吗?