首页 > 解决方案 > 如何在R中使用两个模式对象grepl

问题描述

我有一个向量叫

vec <- c("16S_s95_S112_R2_101.fastq.gz",
         "16S_s95_S112_R1_001.fastq.gz",
         "16S_s94_S103_R2_021.fastq.gz",
         "16S_s94_S103_R1_001.fastq.gz")

我想用sample <- "_s95_"和grepl 项目R1 <- "R1"

我想在做 grepl 时使用sample和对象,并找到匹配的东西和字符串。R1_s95_R1

我想要的结果是16S_s95_S112_R1_001.fastq.gz. 我试过grepl(pattern = sample&R1, x= vec)这对我不起作用。

我可以用多个 grepl 来做到这一点,但我正试图找到一些巧妙的方法来做到这一点。

标签: rgrepl

解决方案


您需要在模式中多做一些工作才能获得匹配,请尝试:

> grep(paste0(".*", sample, ".*", R1), vec, value=TRUE)
[1] "16S_s95_S112_R1_001.fastq.gz"

推荐阅读