R言語で、文字ベクトル内の各文字列を分割してi番目の文字ベクトル返す方法について解説します。文字列の操作には、tidyverseパッケージに含まれているstringrパッケージを使用するのが便利です。ここでは、stringrパッケージのstr_split_i()を使用した方法についてお伝えします。
str_split_i()の概要
str_split_i()は、文字ベクトル内の各文字列を分割してi番目の文字ベクトル返すための関数です。
str_split_i()の使い方
str_split_i(string, pattern, i)
str_split_i()の引数
string
文字ベクトルまたは文字ベクトルに変換可能なものを指定します。
pattern
検索するパターンを指定します。
デフォルトの解釈は、vignette(“regular-expressions”)で説明されている正規表現です。マッチング動作をより細かく制御するには、regex()を使用してください。
fixed()を使用して、固定文字列(つまり、バイトのみを比較する)をマッチングします。これは高速ですが、近似値です。一般的に、人間のテキストをマッチングするには、指定されたロケールの文字マッチング規則を尊重するcoll()が適しています。
boundary()を使用して、文字、単語、行、文の境界をマッチングします。空のパターン””は、boundary(“character”)と同等です。
i
返す要素を指定します。
負の値を指定すると、右側から数えられます。
準備
あらかじめ、tidyverseパッケージを読み込んでおきます。
library(tidyverse)
使用例
文字ベクトル「りんご,ごりら,らっぱ」と「すずめ, めだか, からす」を「,」で分割して最初の文字ベクトルのリストを返すには次のようにします。
str_split_i(c("りんご,ごりら,らっぱ", "すずめ, めだか, からす"), ",", 1)
[1] "りんご" "すずめ"