代码之家  ›  专栏  ›  技术社区  ›  Zeeshan

R中的gsub()未替换“.”(点)

  •  88
  • Zeeshan  · 技术社区  · 9 年前

    我想替换点 "2014.06.09" "2014-06-09" 。我正在使用 gsub() 功能。如果

    x <-  "2014.06.09"
    gsub('2', '-' ,x)
    # [1] "-014.06.09"
    

    但当我尝试

    gsub('.', '-', x)
    # [1] "----------"
    

    而不是 "2014-06-09" .

    class(x)
    # "character"
    

    有人能给我一个正确的方法吗?为什么它不适用 '.' (点)

    3 回复  |  直到 3 年前
        1
  •  2
  •   Maël    2 年前

    你可能需要逃离 . 这是一个特殊的字符,意思是“任何字符”(来自@Flick先生的评论)

     gsub('\\.', '-', x)
     #[1] "2014-06-09"
    

    gsub('[.]', '-', x)
    #[1] "2014-06-09"
    

    或者正如@Moix在评论中提到的,我们也可以使用 fixed=TRUE 而不是转义字符。

     gsub(".", "-", x, fixed = TRUE)