2011-10-02 8 views
7

私はコーパスを持っています: txt = "マイクロエレクトロニクスパターン内のパターン化されたレイヤー"。 はIまさに「フォーム」で用語「パターン」を交換したいと思い、私はコードを書いてみる:文字列を正確にgsub()を使用して置き換えるには

txt_replaced = gsub("pattern","form",txt) 

しかし、txt_replaced中にresponsedコーパスは、次のとおりです。 「マイクロエレクトロニクスのフォーム内に形成された層。 "

"パターン化された"という用語は、 "パターン化"の特性の一部が "パターン"と一致しているため誤って "形成された"と置き換えられます。

gsub()を使用して文字列を置き換えることができればそれを照会したいと思いますか? つまり、正確に一致する用語のみを置き換える必要があります。

私は以下のように応答して渇きました。 "マイクロエレクトロニクスフォーム内のパターン化されたレイヤー"。

多くの感謝!

+3

この質問を見つける:http://stackoverflow.com/questions/6528258/help-with-complete-word-matching-using-grepl-in-r – kohske

答えて

21

@koshkeが指摘したように、私には非常によく似た質問が答えられています。 ...それはgrepで、これはgsubだから、私は再び答えます:

"\ <"は単語の先頭のエスケープシーケンスで、 ">"は最後です。 R列では、そう、バックスラッシュを倍にする必要があります。

txt <- "a patterned layer within a microelectronic pattern." 
txt_replaced <- gsub("\\<pattern\\>","form",txt) 
txt_replaced 
# [1] "a patterned layer within a microelectronic form." 

それとも、あなたが代わりに\<\>\bを使用することができます。それが両端で使用できるように\bはワード境界に一致する>

txt_replaced <- gsub("\\bpattern\\b","form",txt) 

はまた、あなたが唯一のONE発生を置き換えたい場合は、あなたがsub代わりのgsubを使用する必要があることに注意してください。

関連する問題