2015-08-28 67 views
1

gsub似乎没有像我预期的那样工作。来自R的gsub函数的意外结果

我的数据是一个字符向量,其中有很多值,其国名的格式如下:"count(Country_Desc).Afghanistan"。完整的数据可以在这里找到:

https://gist.github.com/anonymous/1fa2d94b21a684139ffa

我打算用gsub,只留下了实际的国家的名字在该格式的元素:

gsub("count(Country_Desc).", "", nms) 

令我惊讶这并未什么都不做;结果与原始结果相同。我尝试了一些这种变化,但无济于事。

我注意到,如果只是作为一个实验,我运行此:

gsub("Western Sahara", "", nms) 

然后删除该国的名称预期(不幸的是,这不是什么我需要做的)。

回答

3

转义括号,或设置fixed=TRUE。括号用于分组正则表达式。

R> gsub("count\\(Country_Desc\\).", "", nms) 
R> gsub("count(Country_Desc).", "", nms, fixed=TRUE) 
+0

这是绝对正确的,谢谢!我只是自己想清楚了。我知道我会对这一个踢我自己! –

+0

我想你应该用'fixed = F'来逃避这个时期,尽管它完成了任务。另外,如果'nms'中没有其他时间段,则更容易的'regex'将是'gsub(“。* \\。”,“”,nms) – MichaelChirico