A: %in% を使用してリスト内の値を含む行をフィルターする方法


R の%in%演算子で次の基本構文を使用して、リスト内の値を含む行をフィルターできます。

 library (dplyr)

#specify team names to keep
team_names <- c(' Mavs ', ' Pacers ', ' Nets ')

#select all rows where team is in list of team names to keep
df_new <- df %>% filter(team %in% team_names)

この特定の構文は、データ フレームをフィルター処理して、チーム列の値が、指定したteam_namesベクトルの 3 つの値のいずれかに等しい行のみを保持します。

次の例は、この構文を実際に使用する方法を示しています。

例: %in% を使用して、リスト内の値を含む行をフィルター処理する

R に、さまざまなバスケットボール チームに関する情報を含む次のデータ フレームがあるとします。

 #create data frame
df <- data. frame (team=c('Mavs', 'Pacers', 'Mavs', 'Celtics', 'Nets', 'Pacers'),
                 points=c(104, 110, 134, 125, 114, 124),
                 assists=c(22, 30, 35, 35, 20, 27))

#view data frame
df

     team points assists
1 Mavs 104 22
2 Pacers 110 30
3 Mavs 134 35
4 Celtics 125 35
5 Nets 114 20
6 Pacers 124 27

データ フレームをフィルターして、チーム列の値が次のチーム名のいずれかに等しい行のみを含めるとします。

  • マブス
  • ペイサーズ
  • ネット

これを行うには、 %in%演算子を使用して次の構文を使用できます。

 library (dplyr)

#specify team names to keep
team_names <- c(' Mavs ', ' Pacers ', ' Nets ')

#select all rows where team is in list of team names to keep
df_new <- df %>% filter(team %in% team_names)

#view updated data frame
df_new

    team points assists
1 Mavs 104 22
2 Pacers 110 30
3 Mavs 134 35
4 Nets 114 20
5 Pacers 124 27

チーム列にマブス、ペイサーズ、またはネッツの値が含まれる行のみが保持されることに注意してください。

チーム名のリストにないチーム名を含む行をフィルタリングする場合は、列名の前に感嘆符 ( ! ) を追加します。

 library (dplyr)

#specify team names to not keep
team_names <- c(' Mavs ', ' Pacers ', ' Nets ')

#select all rows where team is not in list of team names to keep
df_new <- df %>% filter( ! team %in% team_names)

#view updated data frame
df_new

     team points assists
1 Celtics 125 35

チーム列の値が Mavs、Pacers、または Nets と等しくない行のみが保持されることに注意してください。

: dplyr のフィルター関数の完全なドキュメントはここで見つけることができます。

追加リソース

次のチュートリアルでは、dplyr で他の一般的な操作を実行する方法を説明します。

dplyrを使用してグループごとに最初の行を選択する方法
dplyrを使って複数の条件でフィルタリングする方法
dplyrを使用して特定の文字列を含む行をフィルタリングする方法

コメントを追加する

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