多个条件下的Dplyr

时间:2017-06-29 13:06:32

标签: r dplyr plyr

我正在尝试过滤数据集中的行:

head(data)

  event bp_no  sample chrom      bp       gene    feature type length
1     1   bp1 NA54522    1 2425901 intergenic intergenic  INV    0.1
2     1   bp2 NA54522    1 2426025 intergenic intergenic  INV    0.1
3     3   bp1 NA54522    1 6694426        Tsp     intron  INV    0.1
4     3   bp2 NA54522    1 6694566        Tsp     intron  INV    0.1
5     6   bp1 NA54522    2 8387755       pdm3     intron  INV    0.2
6     6   bp2 NA54522    2 8387927       pdm3     exon_2  INV    0.2

删除染色体为13且bp> = 2000000且< = 400000

的行

在Perl中我会这样做:

if ($chrom eq '13' and $bp >= 2000000 and $bp <= 400000){
      next;
    }

我想使用dplyr包来做到这一点。我可以保持所有符合此条件的行:

data<-filter(data, chrom == "13" & bp > 2000000 & bp <= 400000)

但我无法弄清楚如何移除它们,或者保留满足此条件的所有行

1 个答案:

答案 0 :(得分:1)

我们可以将Caused by与否定(filter

一起使用
!