Предполагая, что у вас есть вектор символов, вы можете использовать stringr::str_extract
для этой цели:
s <- c('A, C, D', 'P, O, E', 'W, E, W', 'S, B, W')
s
# [1] "A, C, D" "P, O, E" "W, E, W" "S, B, W"
stringr::str_extract(s, 'A|B')
# [1] "A" NA NA "B"
Если предпочитается совпадение слов, используйте границы слов \\b
:
stringr::str_extract(s, '\\b(A|B)\\b')
# [1] "A" NA NA "B"
Если подстрока определяется как ", "
, вы можете использовать это регулярное выражение (?<=^|, )(A|B)(?=,|$)
:
# use the test case from G.Grothendieck
stringr::str_extract(c("A.A, C", "D, B"), '(?<=^|, )(A|B)(?=,|$)')
# [1] NA "B"