需要使用R脚本从列中删除某些特定字符串

时间:2018-04-02 19:59:52

标签: r

下面是Region列中的数据示例,我需要删除" (更多信息)"来自数据。

  1. 斯里兰卡(更多信息)
  2. 圭亚那(更多信息)
  3. 哈萨克斯坦(更多信息)
  4. 苏里南
  5. 尝试:as.character(gsub( "[\\ (more info)]", "", States$Regions))-> abc 这没有给出正确的结果。

    预期结果:

    1. 斯里兰卡
    2. 圭亚那
    3. 苏里南

1 个答案:

答案 0 :(得分:2)

有些不对劲。

1)不要在这里使用括号。在正则表达式中,[abc]匹配abc。你想匹配整个模式,所以不要使用括号。 (你可以使用括号,但它没有必要

"\\ (more info)"  # fix 1: no brackets

2)你似乎知道反斜杠用来逃避正则表达式中的东西。但它们必须紧挨着它们逃脱的东西!在这里,你正在逃避一个毫无意义的空间。您需要转义属于您的模式的两个括号:

"\\(more info\\)"  # fix 2: escape parens

3)你仍然需要空间,但它在前面,在(转义)括号之前:

" \\(more info\\)"  # fix 3: space at beginning 

现在模式应该有效。另请注意,gsub会返回character,因此您的as.character是多余的。

我强烈建议您使用像regex101.com这样的网站来调试正则表达式。你只需要单\来逃避,但除此之外它就像R. Here's your example。查看侧栏以获得很好的解释。