Rのstrsplit()関数の使い方はどのようになりますか?
プログラマーとして、たくさんの文字列を操作することがあります。よく文字列を結合したり、分割したりする必要があります。そのためにRのstrsplit()関数が存在します。以前の記事では文字列を結合するpaste()関数について説明しましたが、今度はstrsplit()を使って文字列のベクトルを分割する方法を見てみましょう。
strsplit()は、入力文字列のベクトルをサブストリングに分割するという優れたR関数です。この関数の動作と、strsplit()を使用して文字列を分割する方法について見てみましょう。
Strsplit()関数の構文
Strsplit(ストリングスプリット):R言語の関数で、スプリット引数を使用して文字列をサブストリングに分割するために使用される。
strsplit(x,split,fixed=T)
どこで
- X = input data file, vector or a stings.
- Split = Splits the strings into required formats.
- Fixed = Matches the split or uses the regular expression.
Rでstrsplit()関数を使用する – 実装
このセクションでは、strsplit()関数の使用例を見てみましょう。この場合、strsplit()関数は与えられた入力を文字列や値のリストに分割します。
それがどのように機能するか見てみましょう。
df<-("R is the statistical analysis language")
strsplit(df, split = " ")
出力
"R" "is" "the" "statistical" "analysis" "language"
やった!こうすることで、データに含まれる文字列を簡単に分割できます。strsplit()関数の最も優れた使用例の1つは、ワードクラウドのプロットにあります。そこでは、最も人気のあるまたは繰り返しの多い単語をプロットするために、大量の単語文字列が必要です。したがって、この関数を使用してデータから文字列を取得し、リストとして返します。
1. デリミタを使用してstrsplit()関数を使う。
一般的に、区切り記号とはデータ内の単語やテキストを分けるための単純なシンボル、文字、または値のことです。このセクションでは、さまざまな記号を区切り記号として使用する方法について説明します。
df<-"get%better%every%day"
strsplit(df,split = '%')
出力
"get" "better" "every" "day"
この場合、入力テキストは区切り文字として%を持っています。 今、私たちの関心事は区切り文字を削除し、テキストを文字列のリストとして取得することです。 ここではstrsplit()関数が同じことを行っています。 区切り文字を削除して、文字列をリストとして返しました。
2. 正規表現デリミタでのstrsplit()関数
このセクションでは、正規表現を使ったテキストの分割について見ていきます。興味がありますか?では、やってみましょう。
df<-"all16i5need6is4a9long8vacation"
strsplit(df,split = "[0-9]+")
出力
"all" "i" "need" "is" "a" "long" "vacation"
この例では、入力されたデータは0から9までの数字です。そのため、[0-9]+という正規表現を使用して、数字を削除してデータを分割しました。strsplit()関数は、上記のように出力として文字列のリストを返します。
3. 入力された文字列の各文字を分割する。
今まで、与えられた文字列を分割するさまざまな方法に出会ってきました。では、文字列の各文字を分割したい場合はどうでしょうか?それでは、strsplit()関数を使用して、異なる分割引数で各文字を抽出します。
さあ、それがどのように機能するか見てみましょう。
df<-"You can type q() in Rstudio to quit R"
strsplit(df,split="")
出力
"Y" "o" "u" " " "c" "a" "n" " " "t" "y" "p" "e" " " "q" "(" ")" " " "i"
"n" " " "R" "s" "t" "u" "d" "i" "o" " " "t" "o" " " "q" "u" "i" "t" " "
"R"
4. Rのstrsplit()関数を使用して日付を分割する。
strsplit()関数のもう1つの最適な応用例は、日付の分割です。このユースケースはとてもクールで、試す価値があります。このセクションでは、これがどのように機能するかを見てみましょう。
test_dates<-c("24-07-2020","25-07-2020","26-07-2020","27-07-2020","28-07-2020")
test_mat<-strsplit(test_dates,split = "-")
test_mat
出力
"24" "07" "2020"
"25" "07" "2020"
"26" "07" "2020"
"27" "07" "2020"
"28" "07" "2020"
見た目の良い出力が見えますね?この機能を使えば、入力された文字列やデータから多くの分割を作成することも可能です。また、日付を行列形式に変換することもできます。
matrix(unlist(test_mat),ncol=3,byrow=T)
出力
[,1] [,2] [,3]
[1,] "24" "07" "2020"
[2,] "25" "07" "2020"
[3,] "26" "07" "2020"
[4,] "27" "07" "2020"
[5,] "28" "07" "2020"
上記の結果を見ることができます。分割されたデータから行列を作成しました。データの整理は後続の処理に非常に重要です。テキストを単に分割するだけでは意味がありません。上記のサンプルのように信頼性のある形式に変換または整理されるまでです。
結論
さて、記事の終わりになりましたが、strsplit()関数の動作や使用例について、より理解が深まったことを願っています。この関数は文字列を分割する際に広く使用され、最も人気があります。今回は以上です。また別の関数について別の日に戻ってきます。
もっと勉強しましょう:Rのドキュメント