【发布时间】:2017-04-21 00:02:58
【问题描述】:
我正在开展一个项目,其中一部分清理数据正在去除国家/地区名称。我的原始数据框(名为 noaa)LOCATION_NAME 列如下所示:
头(noaa$LOCATION_NAME,5)
[1] “约旦:BAB-A-DARAA,AL-KARAK”
[2] “叙利亚:乌加里特”
[3] “土库曼斯坦:W”
[4] “希腊:瑟拉岛(圣托里尼)”
[5]《以色列:阿里哈(耶利哥)》
去除我正在使用的国家/地区名称:
noaa$LOCATION_NAME
它工作得很好,但是,我仍然得到如下条目: “安塔基亚(ANTIOCH);叙利亚” 或者 "DIMASHQ; TURKEY:ANTIOCH; LEBANON:TARABULUS"(因为表达式不以 "countryname:" 开头
在以下情况下,不能删除以“:”结尾的任何内容: "中国:云南省:弥渡"
我想保留“云南省:米都”
对于“巴基斯坦:印度三角洲;印度:SAMAWANI (SAMAJI)”
我想保留“INDUS DELTA; SAMAWANI (SAMAJI)”
我也有像“SWITZERLAND”(没有“:”)这样的实例,我想我会只放“”(空格)。
我的数据框中有一列包含国家名称,我可以制作一个具有唯一国家名称的向量。我想知道是否有一种智能方法可以检查字符串的一部分是否与我的国家/地区列中的国家/地区名称匹配,如果是,那么我可以将其删除。
我将不胜感激。
【问题讨论】:
-
只需按反向字母对国家名称进行排序。然后将所有字符串连接成一个交替,例如
'(?:'+ join('|', array) +')'然后你必须添加边界构造。