Rでsub()とgsub()を使う方法
はじめに
Rのsub()とgsub()の関数は、特定の文字列でベクトルやデータフレーム内の文字列や文字を置換します。これらの関数は、大規模なデータセットでの変更を行う際に便利です。
この記事では、Rのsub()関数とgsub()関数の使い方について探っていきます。
前提条件
このチュートリアルを完了するためには、次が必要です:
- R installed locally or on a server.
sub()とgsub()の構文
sub()の基本的な構文は次のようです。
sub(pattern, replacement, x)
gsub()の基本構文は次の通りです。
gsub(pattern, replacement, x)
sub()およびgsub()の構文は、パターン、置換、およびベクトルまたはデータフレームが必要です。
- pattern: The pattern or the string which you want to be substituted.
- replacement: A input string to substitute the pattern string.
- x: A vector or a data frame to substitute the strings.
パターンは正規表現(regex)の形式でもあることがあります。
今や構文に精通しているあなたは、実装に進むことができます。
Rのsub()関数
Rのsub()関数は、ベクトルやデータフレーム内の文字列を入力または指定した文字列で置換します。
ただし、sub()関数の制限は、最初の出現しか置換しないことです。
1. sub()関数の使用
この例では、sub() 関数を使って文字列のパターンを置換文字列で置き換える方法を学びます。
# the input vector
df<-"R is an open-source programming language widely used for data analysis and statistical computing."
# the replacement
sub('R','The R language',df)
このコマンドを実行すると、次の出力が生成されます。
“The R language is an open-source programming language widely used for data analysis and statistical computing.”
sub()関数は、ベクトル内の文字列’R’を文字列’The R language’で置き換えます。
この例では、1つのパターンマッチングの発生がありました。もし複数のパターンマッチが発生した場合には、どのような影響があるか考えてみてください。
# the input vector
df<-"In this tutorial, we will install R and show how to add packages from the official Comprehensive R Archive Network (CRAN)."
# the replacement
sub('R','The R language',df)
このコマンドを実行すると、以下の出力が生成されます。
"In this tutorial, we will install The R language and show how to add packages from the official Comprehensive R Archive Network (CRAN)."
この例では、sub() 関数が文字列 ‘R’ の最初の出現箇所を ‘The R language’ で置き換えたことが観察できます。しかし、文字列の次の出現箇所は変わらないままです。
2. データフレームと sub() 関数を使用する
sub()関数は、データフレームでも動作します。
# creating a data frame
df<-data.frame(Creature=c('Starfish','Blue Crab','Bluefin Tuna','Blue Shark','Blue Whale'),Population=c(5,6,4,2,2))
# data frame
df
以下のデータフレームが作成されます。
Creature Population
1 Starfish 5
2 Blue Crab 6
3 Bluefin Tuna 4
4 Blue Shark 2
5 Blue Whale 2
その後、「青」という文字を「緑」という文字に置き換えてください。
# substituting the values
sub('Blue','Green',df)
このコマンドを実行すると、以下の出力が生成されます。
“c(\”Starfish\”, \”Green Crab\”, \”Bluefin Tuna\”, \”Blue Shark\”, \”Blue Whale\”)” “c(5, 6, 4, 2, 2)”
「Blue」のすべての出現箇所を「Green」に置き換える特定の列を指定することもできます。
# substituting the values
sub('Blue','Green',df$Creature)
このコマンドを実行すると、以下の出力が生成されます。
“Starfish” “Green Crab” “Greenfin Tuna” “Green Shark” “Green Whale”
すべての「ブルー」という文字列は「グリーン」と置き換えられました。
Rのgsub()関数
Rのgsub()関数は、置換操作に使用されます。この関数は、入力を取り、指定された値に対して置き換えます。
sub()関数とは異なり、gsub()関数は全てのマッチに対してグローバルな置換を適用します。
gsub()関数を使用する。
この例では、gsub() 関数を使用して、文字列のパターンを置換文字列で置き換える方法を学びます。
# the input vector
df<-"In this tutorial, we will install R and show how to add packages from the official Comprehensive R Archive Network (CRAN)."
これは複数回「R」と書かれたデータです。
# substituting the values using gsub()
gsub('R','The R language',df)
“In this tutorial, we will install The R language and show how to add packages from the official Comprehensive The R language Archive Network (CThe R languageAN).”
全ての「R」のインスタンスが置換されました(「Comprehensive R Archive Network」や「CRAN」の中にあるインスタンスも含む)。gsub()関数は、パラメータに一致する全ての単語を見つけて、それを入力単語や値で置き換えます。
2. データフレームでgsub()関数を使用する
gsub()関数は、データフレームでも動作します。
# creating a data frame
df<-data.frame(Creature=c('Starfish','Blue Crab','Bluefin Tuna','Blue Shark','Blue Whale'),Population=c(5,6,4,2,2))
‘Deep Sea ‘という値をCreature列の先頭に付けてみましょう。
# substituting the values
gsub('.*^','Deep Sea ',df$Creature)
このコマンドを実行すると、次の出力が生成されます。
“Deep Sea Starfish” “Deep Sea Blue Crab” “Deep Sea Bluefin Tuna” “Deep Sea Blue Shark” “Deep Sea Blue Whale”
この例では、gsub()関数が正規表現(regex).*^を使用しています。これは文字列の先頭位置のパターンです。
結論
この記事では、Rでsub()関数とgsub()関数の使い方について探求しました。これらの関数は、文字列またはベクトルやデータフレーム内の文字を特定の文字列で置き換えるために使用されます。sub()関数は最初の一致に対して適用されます。gsub()関数は全ての一致に対して適用されます。
「replace()をRで使う方法」で学習を続けてください。