str_extract()
, str_extract_all()
, readr::parse_number()
は、Rにおける文字列のパターン抽出や数値の抽出に便利な関数です。
以下に、それぞれの関数の使い方、特徴、例を詳しく解説します。
1. str_extract(string, pattern)
単一のマッチを抽出する関数
構文
引数
string
: 文字列または文字のベクトルpattern
: 正規表現のパターン
戻り値
- 最初に一致した文字列を返す(1つだけ)
string
がベクトルの場合、各要素ごとに最初の一致部分を返す
使用例
1. 最初の一致を抽出
2. ベクトル内のすべての要素に適用
3. 数字の抽出
4. 特殊な文字の抽出
ポイント
- 最初の1つの一致だけを抽出する
- もし複数の一致部分がある場合は、最初の1つだけが抽出される
2. str_extract_all(string, pattern)
すべてのマッチを抽出する関数
構文
引数
string
: 文字列または文字のベクトルpattern
: 正規表現のパターン
戻り値
- すべての一致部分のリストを返す
- ベクトルの場合は、各要素の一致部分のリストを返す
使用例
1. すべての一致を抽出
2. ベクトル内のすべての要素に適用
3. 複数の数字を抽出
4. すべての価格の抽出
ポイント
- すべての一致部分を抽出する
- 戻り値はリスト形式(文字列ベクトルではなくリスト)
- もしリストをフラットにしたい場合は、
unlist()
を使う
3. readr::parse_number()
数値の抽出専用の関数
構文
引数
string
: 文字列または文字のベクトル
戻り値
- 数字が抽出され、数値型 (numeric) のベクトルとして返される
使用例
1. 文字列から数値の抽出
2. 複数の文字列の数値を抽出
3. 数値だけが含まれる場合
4. 数字がない場合
ポイント
- 数値を自動的に抽出し、数値型 (numeric) に変換する
str_extract()
やstr_extract_all()
との違いは、**戻り値が「数値型」**になること- 小数点、マイナス記号も自動的に考慮される
まとめ
関数 | 主な用途 | 戻り値の型 | 複数の一致 |
---|---|---|---|
str_extract() |
最初の一致部分を抽出 | 文字列 | 1つだけ |
str_extract_all() |
すべての一致部分を抽出 | リスト (文字列ベクトル) | すべて抽出 |
readr::parse_number() |
数値を抽出し、数値型に変換 | 数値型 (numeric) | 1つだけ (最初の数字) |
どの関数を使うべきか?
やりたいこと | 推奨する関数 | 理由 |
---|---|---|
最初のマッチだけが欲しい | str_extract() |
最初の一致部分だけ抽出 |
すべてのマッチが欲しい | str_extract_all() |
すべての一致部分をリストで取得 |
数値だけを抽出して数値型にしたい | readr::parse_number() |
数値型 (numeric) で取得 |
ベクトルの各要素から数値を抽出 | readr::parse_number() |
すべての要素を一括処理 |
価格、重さ、数量を抽出したい | readr::parse_number() |
価格や重さの数値を数値型で抽出 |
まとめ
str_extract()
:最初の一致を抽出str_extract_all()
:すべての一致をリストで取得readr::parse_number()
:数値型のベクトルを取得(自動で型変換)
これらの関数は、データのクリーニング、数値の抽出、テキスト処理に非常に便利です。
リンク
リンク
リンク
リンク