Я хочу знать, есть ли шаблон в векторе, скажем:
vector <- c(paste0(paste("MC", 1:25), c(rep("", 10), rep("-P1",10), rep("P1",5))), rep("RANDOM", 10),c("MC1","MC2","MC-3"), rep("MCRANDOM", 10))
vector
Я хочу те, которые имеют "M C" и сопровождаются числом. Между ними может быть число, или дефис или пробел, а затем число. Я хочу исключить те, которые являются частью большего кода, те, которые с P и другим числом, например: «M C 20-P1» «M C 21P1». Это обнаруживает те с M C и номером:
vector[grepl("MC( |-)*[0-9]{1,}", vector)]
Я пытался использовать ^
для исключения, но моя попытка не удалась:
vector[grepl("MC( |-)*[0-9]{1,}[^(-*)P]", vector)]
Как я могу совпадать только с M C и цифрами? (в моих реальных данных часть более крупного текста)