【发布时间】:2014-11-27 13:36:57
【问题描述】:
我有如下数据框。这是一个具有统一外观模式的样本集数据,但整个数据不是很统一:
locationid address
1073744023 525 East 68th Street, New York, NY 10065, USA
1073744022 270 Park Avenue, New York, NY 10017, USA
1073744025 Rockefeller Center, 50 Rockefeller Plaza, New York, NY 10020, USA
1073744024 1251 Avenue of the Americas, New York, NY 10020, USA
1073744021 1301 Avenue of the Americas, New York, NY 10019, USA
1073744026 44 West 45th Street, New York, NY 10036, USA
我需要从这个地址中找到城市和国家名称。我尝试了以下方法:
1) strsplit 这给了我一个列表,但我无法从中访问最后一个或倒数第三个元素。
2) 正则表达式 找国家很容易
str_sub(str_extract(address, "\\d{5},\\s.*"),8,11)
但对于城市
str_sub(str_extract(address, ",\\s.+,\\s.+\\d{5}"),3,comma_pos)
我找不到comma_pos,因为它让我再次遇到同样的问题。
我相信有一种更有效的方法可以使用上述任何一种方法来解决这个问题。
【问题讨论】: