Есть ли общий способ удалить подстроку, которая начинается с незаполненной заглавной буквы в R? - PullRequest
1 голос
/ 29 апреля 2019

Пока это сложно описать письменно.Я пытаюсь найти общий способ сделать это:

 [1] "Nature's Corner, Inc.Grocery StoresHerbsBBB Rating: A+"        
 [2] "Peapod Pick-UpGrocery StoresFood Delivery Service"             
 [3] "Stop & ShopGrocery Stores"                                     
 [4] "WegmansGrocery Stores"                                      

В это:

 [1] "Nature's Corner, Inc."        
 [2] "Peapod Pick-Up"             
 [3] "Stop & Shop"                                     
 [4] "Wegmans"  

Есть ли способ написать это с помощью регулярных выраженийиспользуя gsub?

1 Ответ

3 голосов
/ 29 апреля 2019

Do (где s - ваш массив строк):

gsub(pattern = "([a-z.])[A-Z].*", replacement = "\\1", x = s)

Что это делает: ищите строчную букву или. сопровождаемый заглавной буквой. Сохраните первый символ, а затем удалите все, что следует.

Результат:

[1] "Nature's Corner, Inc." "Peapod Pick-Up"        "Stop & Shop"           "Wegmans"

(с более узкой консолью)

[1] "Nature's Corner, Inc."
[2] "Peapod Pick-Up"       
[3] "Stop & Shop"          
[4] "Wegmans"  

Альтернатива:

Если часть, которую вы хотите удалить, всегда начинается с «Бакалея», выполните

gsub(pattern = "Grocery.*", replacement = "", x = s)

Но это может преобразовать "Бакалейные магазины Mom & Pop's" в "Mom & Pop's"

...