Уборка адресов по адресу R - PullRequest
0 голосов
/ 02 апреля 2020

Я хочу убрать адрес улицы, который указан следующим образом, например:

121/122/123 15-й Клайд-роуд

121-122 10-й Бровард-лейн

Я использую регулярное выражение в R как-то так:

sub((\\s*[/ ]\\d+\\s*){1, }   

Хотя это почти дает мне желаемый результат, но термин «10-й» и «15-й» преобразуется в «th», что это не так.

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

(i) 121 15-я дорога Клайд

(ii) 121 10-я полоса * Бровард

Ответы [ 2 ]

0 голосов
/ 02 апреля 2020

В вашем примере вам просто нужно удалить серию символов, начинающуюся с / или -, за которой следует число. Вы можете легко сделать это с помощью следующего регулярного выражения [-/]\\d+.

с stringr:

library(stringr)

v <- c("121/122/123 15th clyde road", "121-122 10th broward lane")
str_remove_all(v, "[-/]\\d+")
# [1] "121 15th clyde road"   "121 10th broward lane"

или с помощью функции gsub:

v <- c("121/122/123 15th clyde road", "121-122 10th broward lane")
gsub("[-/]\\d+", "", v)
# [1] "121 15th clyde road"   "121 10th broward lane"
0 голосов
/ 02 апреля 2020

Данные:

str <- c("121/122/123 15th clyde road", "121-122 10th broward lane", 
     "357 / 122 /123 17th peter road", "121- 122- 123 -124 10th aremand road")

Решение:

gsub("(/(\\s)?\\d+{1,}|-(\\s)?\\d+){1,}", "", str)
[1] "121 15th clyde road"    "121 10th broward lane"  "357   17th peter road"  "121  10th aremand road"
...