我有以下数据框:
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.我该怎么办呢?
此图显示哪些行包含该模式:
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)