如何使用dplyr管道mutate检测字符串是否包含正则表达式模式

sca*_*der 2 regex r dplyr

我有以下数据框:

library(tidyverse)

dat <- structure(list(peptide_id = c("PD_22374", "PD_20472", "PD_17483"
), peptide = c("EVHNPWNFIPDFQRSRQQHAFKKIRKHRRA", "KKEPQICTWKIQVRFSMNKKVWRKGTQKKK", 
"NESVPKTHGDVINTGIKERRSKKAKSITKV")), row.names = c(NA, -3L), class = c("tbl_df", 
"tbl", "data.frame"))


dat
#> # A tibble: 3 x 2
#>   peptide_id peptide                       
#>   <chr>      <chr>                         
#> 1 PD_22374   EVHNPWNFIPDFQRSRQQHAFKKIRKHRRA
#> 2 PD_20472   KKEPQICTWKIQVRFSMNKKVWRKGTQKKK
#> 3 PD_17483   NESVPKTHGDVINTGIKERRSKKAKSITKV
Run Code Online (Sandbox Code Playgroud)

我想检测上面哪一行包含这个正则表达式模式K[KR].{1}[KR].

我们想要另一个列给出YES或NO.我该怎么办呢?

此图显示哪些行包含该模式:

在此输入图像描述

jyj*_*jek 5

dat%>%
  mutate(ind= grepl("K[KR].{1}[KR]",peptide))

# A tibble: 3 x 3
  peptide_id peptide                        ind  
  <chr>      <chr>                          <lgl>
1 PD_22374   EVHNPWNFIPDFQRSRQQHAFKKIRKHRRA TRUE 
2 PD_20472   KKEPQICTWKIQVRFSMNKKVWRKGTQKKK FALSE
3 PD_17483   NESVPKTHGDVINTGIKERRSKKAKSITKV TRUE 
Run Code Online (Sandbox Code Playgroud)