R×stringr::str_split_fixed 文字ベクトル内の各文字列を固定数の分割に分割して文字行列を返す

R言語のstringrパッケージに含まれているstr_split_fixed()関数について解説します。この関数は、「文字列を指定した個数(固定長)で分割し、きれいな行列(Matrix)として受け取りたい」ときに使える関数です。構造が決まっているデータを「列」に分解したいときに便利です。

stringrパッケージは、文字列データを操作するための強力で便利な関数を多く取り扱っています。また、Rのデータサイエンス向け主要パッケージ群であるtidyverseパッケージにも含まれています。

概要

str_split_fixed()は、文字ベクトル内の各文字列を固定数の分割に分割して文字行列を返すための関数です。

使い方


str_split_fixed(string, pattern, n)

引数

string

文字ベクトルまたは文字ベクトルに変換可能なものを指定します。

pattern

検索するパターンを指定します。
デフォルトの解釈は、vignette(“regular-expressions”)で説明されている正規表現です。マッチング動作をより細かく制御するには、regex()を使用してください。
fixed()を使用して、固定文字列(つまり、バイトのみを比較する)をマッチングします。これは高速ですが、近似値です。一般的に、人間のテキストをマッチングするには、指定されたロケールの文字マッチング規則を尊重するcoll()が適しています。
boundary()を使用して、文字、単語、行、文の境界をマッチングします。空のパターン””は、boundary(“character”)と同等です。

i

返す要素を指定します。
負の値を指定すると、右側から数えられます。

n

返される分割の最大数を指定します。

使用例

準備

あらかじめ、tidyverseパッケージまたはstringrパッケージを読み込んでおきます。


# library(tidyverse)でもよい
library(stringr)

固定数に分割する

文字ベクトル「りんご,ごりら,らっぱ」と「すずめ, めだか, からす」を「,」で分割して最初の文字ベクトルのリストを返すには次のようにします。


str_split_fixed(c("りんご,ごりら,らっぱ", "すずめ, めだか, からす"), ",", 2)

     [,1]     [,2]             
[1,] "りんご" "ごりら,らっぱ"  
[2,] "すずめ" " めだか, からす"

参考文献