【发布时间】:2021-10-30 11:29:56
【问题描述】:
我有一个带有街道地址的数据框,其中一些地址带有或不带有单元号。我想将单元编号部分提取到一个新字段中。
library(dplyr)
library(stringr)
CivicAddress <- c("1000 FAKE STREET", "UNIT 1 1000 FAKE STREET", "UNIT 2 1000 FAKE STREET")
df2 <- data.frame(CivicAddress, stringsAsFactors = FALSE)
df2 <- df2 %>%
mutate(UnitNo = sub("\\s*UNIT \\S+\\s*", "", CivicAddress))
我能够成功匹配单元号,但我不确定如何表达表达式以使其仅返回单元号(例如,单元 1、单元 2)。目前我的代码去掉了单元号并返回地址的其余部分。
【问题讨论】:
-
sub("\\s*(UNIT \\S+)\\s.*|.*", "\\1", CivicAddress) -
如果您经常使用地址,可能值得查看一些用于处理地址的 r 包,例如
censusxy或postmastr。