2011-07-10 13 views
17

私はgsub("toreplace","replacement", myvector)を使用してRのデータを消去していますが、これはコンマなどでは機能しますが、"$"を削除しても効果はありません。だから私がすればgsub("$","",myvector)すべてのドル記号はそのまま残ります。

$はRの特殊文字ですから、私は"\$"をエスケープしようとしましたが、同じ結果(効果なし)が得られると思います。 Rの特殊文字をエスケープするリソースを見つけることができませんでした。

明らかに私は前処理でこれを行うべきです。しかし、私はそこにいる誰かが、a)Rの特殊文字をエスケープする方法、b)Rの中で厄介なものを取り除く方法を知っていたかどうか疑問に思っていました。$科学について。

答えて

11

文字をエスケープするには、いくつかの倍の痛みをすることが、ちょうど(それ文字クラス作成)角括弧に入れることができ、これに役立ちます:

> gsub("[$]","",c("$100","ta$ty")) 
[1] "100" "taty" 
25

あなたは第二、R用の第1、二度それをエスケープする必要があります正規表現のために。

gsub('\\$', '', c("a$a", "bb$")) 
[1] "aa" "bb" 

引用符とエスケープの詳細については、?Quotesを参照してください。

13

使用fixed = TRUE

gsub('$', '', c("a$a", "bb$"), fixed = TRUE) 

次にあなたが任意の特殊文字を心配する必要はありません。 stringrでは、これは少し異なる実装されています。DiggyFとジェームズに

library(stringr) 
str_replace_all(c("$100","ta$ty"), fixed("$"), "") 

感謝を例について!

+0

私はもっと慎重に読むべきだと分かっていました。ありがとう! – araneae

関連する問題