在R中排除JUST特定模式的所有行

时间:2015-04-21 19:50:43

标签: r conditional bioconductor

我想排除df中具有JUST特定模式(AAABBB)的所有行。我的真实数据有超过20k行和超过2k列!按照代表性的输入示例:

df <- "chr   position sample21s  sample23s sample22s
    chr2    150      AB           BB       AA       
    chr4    250      A            AA       BB
    chr5    350      AB           B        BB   
    chr7    550      AA           AA       AA
    chr8    650      BB           BB       AB"
df <- read.table(text=df, header=T)

预期产出:

chr   position sample21s  sample23s sample22s
chr4    250      A            AA       BB
chr5    350      AB           B        BB   

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

这是另一种选择......

> ind <- apply(df[, grepl("^sample", names(df))], 1,
              function(x) sum(x %in% c("AA", "AB", "BB"))!=3)

> df[ind, ]
   chr position sample21s sample23s sample22s
2 chr4      250         A        AA        BB
3 chr5      350        AB         B        BB