У меня есть такие строки в data.frame, и я хочу сохранить только те, которые имеют p__, за которыми следуют буквы [A-z], а не знак |.Пробовал это, но не работало:
p__
A-z]
|
grep("p__[[:alpha:]]$",rownames(df), perl=T)
ввод:
p__xxxx|g_xxxx|s_xxxx p__xxxx|g_xxxx p__xxxx
вывод:
p__xxxx
Допустим, у вас есть вектор с тремя строками:
str0<-"p__xxxx|g_xxxx|s_xxxx" str1<-"p__xxxx|g_xxxx" str2<-"p__xxxx" mystr<-c(str0,str1,str2)
Затем вы можете выбрать, используя следующее:
mystr[!grepl('\\|', mystr)&grepl("p__",mystr)] [1] "p__xxxx"
Необходимо указать, что после подчеркивания может быть несколько букв, используя +.
+
x <- c('p__xxxx|g_xxxx|s_xxxx', 'p__xxxx|g_xxxx', 'p__xxxx') grep("p__[[:alpha:]]+$",x) [1] 3