Итак, у меня есть набор данных с уличными адресами, они отформатированы очень по-разному. Например:Как разбить строку только на первый номер
d <- c("street1234", "Street 423", "Long Street 12-14", "Road 18A", "Road 12 - 15", "Road 1/2")
Из этого я хочу создать две колонки. 1. X: с адресом улицы и 2. Y: с номером + все, что следует. Как это:
X Y
Street 1234
Street 423
Long Street 12-14
Road 18A
Road 12 - 15
Road 1/2
До сих пор я пытался strsplit и последовали некоторые подобные вопросы здесь, например: strsplit(d, split = "(?<=[a-zA-Z])(?=[0-9])", perl = T))
. Я просто не могу найти правильное регулярное выражение.
Любая помощь очень ценится. Заранее спасибо!
'do.call ('rbind', strsplit (d, split =" (? <= [A-zA-Z]) \\ s * (? = [0-9]) ", perl = TRUE)) ' – Sathish
@Sathish: Да, но давайте оставим что-то для OP. В самом вопросе нет никакого кода генерации кадра данных, это все о регулярном выражении. –
Спасибо за помощь. В конце я использовал colsplit с предоставленным регулярным выражением, а затем привязал их к существующему набору данных. Спасибо, Sathish. – Jesse