イントロダクション
sub()
およびgsub()
関数は、Rのベクトルやデータフレーム内の文字列や文字を特定の文字列で置き換えるために使用されます。これらの関数は、大規模なデータセットに変更を加える際に便利です。
この記事では、Rでsub()
およびgsub()
関数を使用する方法について探求します。
前提条件
このチュートリアルを完了するには、以下が必要です:
- R installed locally or on a server.
sub()
およびgsub()
の構文
sub()
の基本的な構文は次のとおりです:
sub(pattern, replacement, x)
gsub()
の基本的な構文は次のとおりです:
gsub(pattern, replacement, x)
sub()
およびgsub()
の構文では、パターン、置換文字列、およびベクトルまたはデータフレームが必要です:
- パターン:置換したいパターンまたは文字列です。
- 置換文字列:パターン文字列を置換するための入力文字列です。
- x: A vector or a data frame to substitute the strings.
パターンは正規表現(regex)の形式でも指定できます。
これで構文に慣れたら、実装に進むことができます。
Rのsub()
関数
sub()
関数は、ベクトルまたはデータフレーム内の文字列を入力または指定された文字列で置き換えます。ただし、sub()
関数の制限は、最初の一致のみを置換する点です。
1. sub()
関数の使用方法
この例では、sub()
関数を使用して文字列パターンを置換文字列で置き換える方法を学びます。
# 入力ベクトル
df<-"R is an open-source programming language widely used for data analysis and statistical computing."
# 置換
sub('R','The R language',df)
このコマンドを実行すると、以下の出力が生成されます。
Output"The R language is an open-source programming language widely used for data analysis and statistical computing."
sub()
関数は、ベクトル内の文字列'R'
を文字列'The R language'
で置き換えます。
この例では、パターンの一致は一度だけでした。パターンの一致が複数ある場合にはどうなるか考えてみましょう。
# 入力ベクトル
df<-"In this tutorial, we will install R and show how to add packages from the official Comprehensive R Archive Network (CRAN)."
# 置換
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()
関数はデータフレームでも使用できます。
# データフレームの作成
df<-data.frame(Creature=c('Starfish','Blue Crab','Bluefin Tuna','Blue Shark','Blue Whale'),Population=c(5,6,4,2,2))
# データフレーム
df
これにより、次のデータフレームが作成されます:
Creature Population
1 Starfish 5
2 Blue Crab 6
3 Bluefin Tuna 4
4 Blue Shark 2
5 Blue Whale 2
次に、文字列'Blue'
を文字列'Green'
に置き換えます:
# 値の置換
sub('Blue','Green',df)
このコマンドを実行すると、次の出力が生成されます:
Output"c(\"Starfish\", \"Green Crab\", \"Bluefin Tuna\", \"Blue Shark\", \"Blue Whale\")"
"c(5, 6, 4, 2, 2)"
また、特定の列を指定して、すべての出現箇所で'Blue'
を'Green'
に置き換えることもできます:
# 値の置換
sub('Blue','Green',df$Creature)
このコマンドを実行すると、次の出力が生成されます:
Output"Starfish"
"Green Crab"
"Greenfin Tuna"
"Green Shark"
"Green Whale"
文字列'Blue'
のすべてのインスタンスが'Green'
に置き換えられました。
Rでのgsub()
関数
Rのgsub()
関数は、置換操作に使用されます。この関数は、指定された値に対して入力を置換します。
sub()
関数とは異なり、gsub()
関数はすべてのマッチに対してグローバルな置換を適用します。
1. gsub()
関数の使用方法
この例では、gsub()
関数を使用して文字列パターンを置換文字列で置換する方法を学びます。
# 入力ベクトル
df<-"In this tutorial, we will install R and show how to add packages from the official Comprehensive R Archive Network (CRAN)."
これは複数回「R」と書かれたデータです。
# gsub()を使用して値を置換する
gsub('R','The R language',df)
Output"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)."
「Comprehensive R Archive Network」や「CRAN」のインスタンスを含め、すべての「R」のインスタンスが置換されました。gsub()
関数は、パラメータに一致する単語を見つけて、それを入力の単語や値で置換します。
2. データフレームでgsub()
関数を使用する
gsub()
関数はデータフレームでも使用できます。
# データフレームの作成
df<-data.frame(Creature=c('Starfish','Blue Crab','Bluefin Tuna','Blue Shark','Blue Whale'),Population=c(5,6,4,2,2))
Creature
列の値に'Deep Sea '
を接頭辞として追加しましょう:
# 値の置換
gsub('.*^','Deep Sea ',df$Creature)
このコマンドを実行すると、以下の出力が生成されます:
Output"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()
関数はすべての一致に適用されます。
Rでreplace()
を使用する方法で学習を続けてください。
Source:
https://www.digitalocean.com/community/tutorials/sub-and-gsub-function-r