Вот одно решение, использующее базовые функции регулярных выражений в R. Сначала мы используем strsplit
для разделения на запятую. Затем мы используем grepl
для фильтрации только тех элементов, которые начинаются с bb=
и gsub
для извлечения всех символов после bb=
.
> x <- c("aa=v12, bb=x21, cc=f35", "xx=r53, bb=g-25, yy=h48", "nn=u75, bb=26, gg=m98")
> y <- unlist(strsplit(x , ","))
> unlist(lapply(y[grepl("bb=", y)], function(x) gsub("^.*bb=(.*)", "\\1", x)))
[1] "x21" "g-25" "26"
Похоже, str_replace
- это функция, которую вы ищете, если хотите идти по этому пути:
> str_replace(y[grepl("bb=",y)], "^.*bb=(.*)", "\\1")
[1] "x21" "g-25" "26"