sub と gsub
grep() と grepl() は、正規表現が文字ベクトルにマッチするかどうかを確認するだけでしたが、sub() と gsub() はさらに一歩進んで、replacement 引数で置換後の文字列を指定できます。文字ベクトル x の中で正規表現 pattern がマッチした場合、該当する要素が replacement に置き換えられます。sub() は最初のマッチのみを置換しますが、gsub() はすべてのマッチを置換します。
これまで使ってきた emails ベクトルは、DataCamp のメールデータベースの一部だとしましょう。.edu のメールアドレスを持つユーザーに、datacamp.edu ドメインの新しいメールアドレスを提供してみませんか?オンライン教育が従来の学習機関に取って代わる時代に、あなたもその一員になりましょう!
この演習はコースの一部です
中級 R
演習の手順
高度な正規表現 "@.*\\.edu$" を使い、sub() でマッチした部分を "@datacamp.edu" に置換してください。各文字列でマッチは1つだけなので、ここでは gsub() は不要です。結果の出力を確認しましょう。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# The emails vector has already been defined for you
emails <- c("[email protected]", "[email protected]", "[email protected]",
"invalid.edu", "[email protected]", "[email protected]")
# Use sub() to convert the email domains to datacamp.edu