在R中的整个数据帧列上删除随机字符串的一部分

时间:2017-09-10 21:13:40

标签: r regex dataframe street-address

需要帮助删除地址前出现的字符串中的随机文本(数据集有~5000个观察值)。数据帧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 个答案:

答案 0 :(得分:2)

如果你知道你想要的地址部分总是以数字开头,而你要删除的部分将是文本,那么你可以使用它:

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")