をプログラムとして見たときに注意・検討すべきところを学んでおきたい、ということで
を読んでいく。
前回
11. 文字列操作
は文字列操作のための様々なユーティリティを持っている。
11.1 文字列操作関数の概要
11.1.1 grep()
は文字列のベクトル
から指定された部分文字列
を探索する。
に要素が
個あるとき、この関数は長さが最大で
であるようなベクトルを返す。
grep("Pole", c("Equator", "North Pole", "South Pole")) grep("pole", c("Equator", "North Pole", "South Pole"))
11.1.2 nchar()
は文字列
の長さを返す。文字モードでない
に対しては予想できない値を返す。
11.1.3 paste()
は複数の文字列を連結しその結果を1つの文字列として返す。デフォルトでは、
は文字列間に半角空白を挿入して結合する。結合に用いる文字列を変える場合、オプション引数である
にその値を与える。
なおは
と同じである。
11.1.4 sprintf()
は指定された書式で構成要素から文字列を組み立てる。
i <- 8 s <- sprintf("The square of %d is %d",i,i^2) print(s)
11.1.5 substr(), substring()
(もしくはこれと等価だが
)は指定された文字列
内の指定された文字位置範囲(
:
)の部分文字列を返す。
substring("Equator",3,5)
11.1.6 strsplit()
は文字列
を引数
で指定した文字列で分割した部分文字列の
のリストを返す。
strsplit("6-16-2011",split="-")
11.1.7 regexpr(),grepexpr()
は、
内に出現する最初の
の文字位置を見つける。
は、すべて文字位置を見つける。
11.2 正規表現
正規表現は一種のワイルドカードである。
たとえば右記のような例がある。メタ文字は任意の1つの文字列を指す。
は.(.には複数個の文字を指定可能。)を含む文字列を指定する。
# aまたはuを含む任意の文字列の番号を返す grep("[au]", c("Equator","North Pole","South Pole")) # o+(任意の文字列)+eという3文字から成る部分文字列をもつ文字列の番号を返す grep("[o.e]", c("Equator","North Pole","South Pole"))
メタ文字をエスケープするにはバックスラッシュ1文字をエスケープしたい文字の前に用いる*1。
# ピリオド.を含む文字列を探す grep("\\.",c("abc","de","f.g"))