web-dev-qa-db-ja.com

Rのgsub()は '。'を置き換えていません(ドット)

"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"

これを正しくする方法と、'.'(ドット)が機能しない理由を教えてください

36
Zak

「任意の文字」を意味する特殊文字である.をエスケープする必要がある場合があります(@Mr Flickのコメントより)

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

または

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

または、コメントで@Moixが言及したように、文字をエスケープする代わりにfixed=TRUEを使用することもできます。

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