美文网首页生物信息学札记
R语言处理data.frame数据,对某一列中具有重复字段的行,

R语言处理data.frame数据,对某一列中具有重复字段的行,

作者: 天地本无心 | 来源:发表于2019-11-09 23:58 被阅读0次

    从前有个小白学生信,然后经过一段时间的学习,他进阶成了小青(该小伙真名就叫某青→_→)。

    今天他问了一个问题,就是在基因芯片数据处理的时候,有时候探针会有重复,这时候想移除重复的探针,仅保留其values值的总和最大的那一行。

    简化一下需求,即对于表格如下,可以看到probe_1, probe_2, 有重复,对于这样的重复探针,我们只想保留其中一行,保留的标准是其他的值加起来总和最大的那一行。

    D1 D2   probe
    1  6 probe_1
    4 10 probe_2
    3  7 probe_3
    5  9 probe_1
    2  8 probe_2
    ...
    

    预期的结果是:

    D1 D2   probe
    5  9 probe_1
    4 10 probe_2
    3  7 probe_3
    ...
    

    那怎么实现呢,方法肯定不止一种,有个简单的代码如下。

    rm(list=ls())
    set.seed(12)
    dat <- data.frame("D1"=sample(1:5, 5), "D2"=sample(6:10, 5))
    dat$probe = paste("probe", c(1:3, 1:2), sep = "_")
    dat$sumvalue <- apply(dat[,c("D1","D2")], 1, sum)
    
    library(dplyr)
    dat1 <- dat %>%
      group_by(probe) %>%
      filter(sumvalue==max(sumvalue))
    

    未完待续

    相关文章

      网友评论

        本文标题:R语言处理data.frame数据,对某一列中具有重复字段的行,

        本文链接:https://www.haomeiwen.com/subject/sxhobctx.html