首页 > 解决方案 > 消除数据集中的特定行

问题描述

我有一个 .csv 格式的数据框。该数据框包括 34500 行。在此文件中,存在 RNAseq 分析结果列表。这里的问题是一些基因有多个结果,我应该为每个基因选择 1 个条目,这个条目应该有最大的 p 值。我编辑了我的数据,我只有“基因符号”和“p值”信息。

我如何删除/消除包含根据我的规则应该消除的基因的行。我将添加一个显示我的问题的屏幕截图。

提前致谢。

RNF144A、TTTY14、TAS2R8、KIAA0355、GCNT2 是问题的示例。

标签: r

解决方案


假设空白 ( "") 对应于前一个非空白“基因”的重复条目,将空白更改为NA( na_if),然后使用fill将 NA 更改为以前的非 NA 值,按“基因”分组,得到行max“pvalue”的值

library(dplyr)
library(tidyr)
df1 %>%
    mutate(Gene = na_if(Gene, "")) %>%
    fill(Gene) %>%
    group_by(Gene) %>%
    slice(which.max(pvalue))

推荐阅读