[R言語]文字列を正規表現で分割するには?

R言語

どうも、ちょげ(@chogetarou)です。

文字列(string)を正規表現で分割する方法を紹介します。

スポンサーリンク

方法

文字列(string)を正規表現で分割する方法は、2つあります。

strsplit()

ひとつは、strsplit()を使う方法です。

まず、strsplit()を呼び出します。

そして、strsplit()の第1引数に対象の文字列、第2引数にパターンの文字列を指定します。

#text=対象の文字列, 正規表現のパターンの文字列
result <- strsplit(text, pattern)

上記のstrsplit()は、対象の文字列(string)を正規表現のパターンにマッチした文字で分割したリストを返します。

もし、結果をベクトルで取得したい場合は、strsplit()の結果をunlist()でベクトルに変換します。

#結果をベクトルで取得
result <- unlist(strsplit(text, pattern))

使用例

text <- "AB\r\nCDE\nFG\nHIJ\r\nK"

result <- strsplit(text, "[\r\n]+")

print(result)
出力:
> print(result)
[[1]]
[1] "AB"  "CDE" "FG"  "HIJ" "K"  

stringi

もうひとつは、stringiを使う方法です。

まず、library()を呼び出し、引数にstringiを指定します。

library(stringi)

次に、stri_split_regex()を呼び出します。

そして、stri_split_regex()の第1引数に対象の文字列、第2引数にパターンの文字列を指定します。

#text=対象の文字列, 正規表現のパターンの文字列
result <- stri_split_regex(text, pattern)

上記のstri_split_regex()は、対象の文字列(string)を正規表現のパターンにマッチした文字で分割した結果を返します。

使用例

library(stringi)

text <- "AB\r\nCDE\nFG\nHIJ\r\nK"

result <- stri_split_regex(text, "[\r\n]+")

print(result)
出力:
> print(result)
[1] "AB"  "CDE" "FG"  "HIJ" "K"  

まとめ

文字列(string)を正規表現で分割する方法は、次の2つです。

  • strsplit()を使う方法
    result <- strsplit(text, pattern)
  • stringiを使う方法
    result <- stri_split_regex(text, pattern)

コメント

タイトルとURLをコピーしました