【发布时间】:2021-05-31 11:59:15
【问题描述】:
我发现以前的帖子不够灵活,无法适用于我的情况... Regular expression to get a number after particular string in R
我正在尝试做的是在对地址进行地理编码之前清理地址。 例如,我想删除所有邮政信箱信息。为了做到这一点,我需要能够识别暗示邮政信箱的字符串后面的数字。
df <- data.frame(Address = c("123 Fake street, Melbourne, 3000",
"PO box 2 123 Fake street, Melbourne, 3000",
"PO box 22313 123 Fake street, Melbourne, 3000",
"PObox 213 Unit 12 123 Fake street, Melbourne, 3000",
"123 Fake street PO box 22313, Melbourne, 3000"))
df$Address <- as.character(df$Address)
> df
Address
1 123 Fake street, Melbourne, 3000
2 PO box 2 123 Fake street, Melbourne, 3000
3 PO box 22313 123 Fake street, Melbourne, 3000
4 PObox 213 Unit 12 123 Fake street, Melbourne, 3000
5 123 Fake street PO box 22313, Melbourne, 3000
我希望所有地址都返回为“123 Fake street, Melbourne, 3000”。
如你所见,
- 邮政信箱可以多种方式拼写
- 邮政信箱后面的数字长短不一
- 邮政信箱部分可以出现在字符串中的任何位置
- 字符串中还有其他数字(门牌号、单元号、邮政编码等)
【问题讨论】:
-
你一直在用什么?
-
你还有其他模式吗
-
到目前为止我还没有使用任何东西,因为只有当我可以删除'PO box'字符串,包括字符串后面的'number'时,我才能清理。
-
我想到目前为止我已经涵盖了所有模式,但你永远不知道重新输入数据!任何事情都有可能发生。