Удаление паттернов в R - PullRequest
1 голос
/ 10 июля 2020

У меня есть символьная строка, которая выглядит как показано ниже, и я хочу удалить строки, которые не имеют никакого значения после '_'. Как мне это сделать в R?

 [985] "Pclo_"                "P2yr13_ S329"         "Basp1_ S131"         
 [988] "Stk39_ S405"          "Srrm2_ S351"          "Grin2b_ S930"        
 [991] "Matr3_ S604"          "Map1b_ S1781"         "Crmp1_"              
 [994] "Elmo1_"               "Pcdhgc5_"             "Sp4_"                
 [997] "Pbrm1_"               "Pphln1_"              "Gnl1_ S33"           
[1000] "Kiaa1456_"

Ответы [ 2 ]

1 голос
/ 10 июля 2020

Мы можем использовать grep

grep("_$", v1, invert = TRUE, value = TRUE)

или endsWith

v1[!endsWith(v1, "_")]
0 голосов
/ 10 июля 2020

Мы можем использовать substring, чтобы получить последний символ в векторе и выбрать, если это не "_".

x <- c("Pclo_","P2yr13_ S329","Basp1_ S131")
x[substring(x, nchar(x)) != '_']
#[1] "P2yr13_ S329" "Basp1_ S131" 

Последний символ может быть извлечен с помощью регулярного выражения с помощью sub:

x[sub('.*(.)$', '\\1', x) != '_']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...