【问题标题】:Wildcards for filter function in dplyrdplyr 中过滤器功能的通配符
【发布时间】:2017-12-04 13:54:56
【问题描述】:

我正在使用dplyr,我想根据数据框第一列的样本 ID 过滤我的数据框(生物型),例如它们看起来像这样:

ID
chrX.tRNA494-SerAGA 
chrX.tRNA636-AlaCGC
mmu_piR_000007
...

我想从以“mmu”开头的ID中过滤以“chr”开头的ID:

biotype<- biotype %>% 
  filter( str_detect (biotype, "^chr") ==TRUE )
biotype

有人可以帮忙吗?我只是在寻找像* 这样的东西,它允许我过滤所有以这些特定字符开头的字符串的行...

【问题讨论】:

  • 所以您想要的输出将包括chrX.tRNA494-SerAGAchrX.tRNA636-AlaCGC 但不包括mmu_piR_000007?那是对的吗? (在您的问题中包含示例输入和输出总是有帮助的。)
  • 是的。对不起,你是对的,我应该更准确

标签: r dplyr


【解决方案1】:

我认为你已经很接近了。

library(stringr)
biotype %>% filter(str_detect(ID,"^chr"))

(需要指定列名,== TRUE是多余的)。

【讨论】:

    【解决方案2】:

    grepl 呢?

    biotype <- biotype %>%
        filter(grepl('^chr', ID))
    

    【讨论】:

      猜你喜欢
      • 2021-10-22
      • 1970-01-01
      • 2017-04-22
      • 1970-01-01
      • 1970-01-01
      • 2019-06-18
      • 2016-11-21
      • 2014-12-31
      相关资源
      最近更新 更多