2015-07-20 27 views
12

我是R新手,想將「2014.06.09」中的點替換爲「2014-06-09」。我正在使用gsub()函數。如果g中的gsub()不能代替'。' (dot)

> x="2014.06.09" 
> gsub('2','-',x) 
[1] "-014.06.09" 

但是當我嘗試

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

,而不是 「2014年6月9日」。

PS-類(x)是「字符」

一些建議我一種方式來獲得這種權利,也是爲什麼它不工作了「」 (點)

回答

30

您可能需要逃避.這是一個特殊字符,這意味着 「任何字符」(從@Mr弗裏克的評論)

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

或者

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

或者像@ Moix在評論中提到,我們也可以使用fixed=TRUE而不是轉義字符。

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

你不需要在'[]'內跳轉?不知道... – drmariod

+1

@drmariod是的,這是一個替代 – akrun

+4

或使用'fixed = TRUE',它不使用正則表達式,而是隻是搜索字符。 'gsub(「。」,「 - 」,x,fixed = T)' – Molx