A: 複数のモデルで grepl を使用する方法
R のgrep()関数で次の基本構文を使用すると、特定の列に複数の文字列パターンの 1 つを含むデータ フレーム内の行をフィルターできます。
library (dplyr) new_df <- filter(df, grepl(paste(my_patterns, collapse=' | '), my_column))
この特定の構文は、 my_columnという列の値にmy_patternsというベクトル内の文字列パターンの 1 つが含まれる行のデータ フレームをフィルター処理します。
次の例は、この構文を実際に使用する方法を示しています。
例: R で複数のモデルで grep() を使用する方法
R に、さまざまなバスケットボール チームに関する情報を含む次のデータ フレームがあるとします。
#create data frame df <- data. frame (team=c('Mavs', 'Hawks', 'Nets', 'Heat', 'Cavs'), points=c(104, 115, 124, 120, 112), status=c('Bad', 'Good', 'Excellent', 'Great', 'Bad')) #view data frame df team points status 1 Mavs 104 Bad 2 Hawks 115 Good 3 Nets 124 Excellent 4 Heat 120 Great 5 Cavs 112 Bad
データ フレームをフィルター処理して、ステータス列文字列に次の文字列パターンのいずれかが含まれる行のみを含めるとします。
- ‘良い’
- ‘グレー’
- ‘元’
これを行うには、 grepl()関数で次の構文を使用できます。
library (dplyr) #define patterns to search for my_patterns <- c(' Good ', ' Gre ', ' Ex ') #filter for rows where status column contains one of several strings new_df <- filter(df, grepl(paste(my_patterns, collapse=' | '), status)) #view results new_df team points status 1 Hawks 115 Good 2 Nets 124 Excellent 3 Heat 120 Great
データ フレームは、ステータス列の文字列に指定した 3 つのパターンのいずれかを含む行のみを含むようにフィルター処理されていることに注意してください。
Paste()関数を引数Collapses=’|’とともに使用することに注意してください。実際にステータス列で文字列「Good|Gre|Ex」を探しました。
以来| R の記号は「OR」を意味し、ステータス列に「Good」または「Gre」または「Ex」を含む行を見つけることができました。
追加リソース
次のチュートリアルでは、R で他の一般的なタスクを実行する方法について説明します。
dplyr を使用して列に文字列が含まれている場合に変数を変更する方法
dplyrを使用して文字列から最初の文字を削除する方法
dplyrを使用して列内の文字列を置換する方法