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を使用して列内の文字列を置換する方法

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です