Удалить часть рандомизированной строки по всему столбцу данных в R
Нужна помощь в удалении случайного текста в строке, которая появляется перед адресом (набор данных имеет ~5000 наблюдений). Dataframe test2$address
гласит следующее:
addresses <- c(
"140 National Plz Oxon Hill, MD 20745",
"6324 Windsor Mill Rd Gwynn Oak, MD 21207",
"23030 Indian Creek Dr Sterling, VA 20166",
"Located in Reston Town Center 18882 Explorer St Reston, VA 20190"
)
Я хочу, чтобы он выкладывал все адреса в общем формате:
[885] "23030 Indian Creek Dr Sterling, VA 20166"
[886] "18882 Explorer St Reston, VA 20190"
Не уверен, как это сделать, так как нет конкретного шаблона для текста, который идет перед номером адреса.
1 ответ
Решение
Если вы знаете, что часть адреса, которую вы хотите, всегда начинается с цифр, а часть, которую вы хотите удалить, будет текстовой, то вы можете использовать это:
sub(".*?(\\d+)", "\\1", x)
Выход:
[1] "140 National Plz Oxon Hill, MD 20745"
[2] "6324 Windsor Mill Rd Gwynn Oak, MD 21207"
[3] "23030 Indian Creek Dr Sterling, VA 20166"
[4] "18882 Explorer St Reston, VA 20190"
Для этого нужно удалить все (.*) До первой (?) Серии цифр (\\d+).
Пример данных:
x <- c("140 National Plz Oxon Hill, MD 20745",
"6324 Windsor Mill Rd Gwynn Oak, MD 21207",
"23030 Indian Creek Dr Sterling, VA 20166",
"Located in Reston Town Center 18882 Explorer St Reston, VA 20190")