次のような多数のファイル名を持つ列を持つデータフレームがあります。
d <- c("harry11_scott80_norm.avi","harry11_norm.avi","harry11_scott80_lpf.avi",
"joel51_lpf.avi","rich82_joel51_lpf.avi")
harry11_scott80_norm.avi
Rで、すべての式を式のように2人の名前に置き換え、すべての式を。のようにincongruent
1人の名前に置き換えてほしい。私はそれを行うために使用することができます:harry11_norm.avi
congruent
gsub
dd <- gsub("harry11_scott80_norm.avi", "incongruent", d)
しかし、私はそれらの名前をたくさん持っていたので、それは非常に不格好な解決策になるでしょう。したがって、理想的には、「incongruent」のような文字列を含む式全体を置き換えたいと思います_scott80_
。私はそれgsub
がこれを行うことができると思いました、しかし私がそれを実行するとき:
dd <- gsub("_scott80_", "incongruent", d)
と返されますharry11incongruentnorm.avi
。これは、文字列の完全一致を単純に置き換えるためです。選択した文字列を含む式を完全に置き換えるように指示gsub
する方法があると思いますが、見つかりません。
Rで、特定のパターンを含む文字列を別の文字列に置き換えるにはどうすればよいですか?agrep
、しかし、このコンテキストでの使用方法がわかりません 。
編集:サイドボーナスの質問-@GSeeの回答に基づいて、置き換えたい文字列のリストを渡すことができる関数はありますか?たとえば、動作しgsub(c(".*_scott80_.*", ".*_harry11_.*"), "incongruent", d)
ません。