web-dev-qa-db-ja.com

「。」を置き換えますRでgsub()を使用してスペースで?

以下のようなデータがありますので、「」を入れ替えたいです。スペースを使用してgsub()を使用しますが、正しい出力を取得できませんでした。

data<-c("12.57869486" ,"12.57869582" ,"12.57870155")

a<- gsub("."," ", data)
a
[1] "           " "           " "           "
8
star

これを実現する多くの方法:

1)gsubのfixedパラメータを使用します。

_?gsub_から:

固定論理。 TRUEの場合、パターンはそのまま照合される文字列です。すべての矛盾する引数を上書きします。

したがって、コマンドに_fixed=TRUE_を追加するだけで、の解釈を回避できます。任意の文字として(正規表現モード):

_> a<-gsub(".", " ", data, fixed=TRUE)
> a
[1] "12 57869486" "12 57869582" "12 57870155"
_

2)chartrを使用します(G. Grothendieckコメントから):

_chartr(".", " ", data)
_

3)正規表現の任意の文字を意味する特殊文字_._をエスケープします:(Tim Biegeleisenコメントから)

  • gsub("\\.", " ", data)二重のバックスラッシュでエスケープ
  • gsub("[.]", " ", data)文字クラスを使用したエスケープ

長い正規表現では、2番目の構文が読みやすくなるので、2番目の構文を好む傾向があります。

16
Tensibai