Dplyr で複数の条件で select_if を使用する方法
dplyrパッケージのselect_if()関数で次の基本構文を使用して、いくつかの条件のいずれかを満たすデータ フレーム内の列を選択できます。
df %>% select_if( function (x) condition1 | condition2)
次の例は、この構文を実際に使用する方法を示しています。
例 1: クラス型で select_if() を使用する
次のコードは、 select_if()関数を使用して、文字または数値クラス タイプを持つデータ フレーム内の列を選択する方法を示しています。
library (dplyr) #create data frame df <- data. frame (team=c('A', 'B', 'C', 'D', 'E'), conference=as. factor (c('W', 'W', 'W', 'E', 'E')), points_for=c(99, 90, 86, 88, 95), points_against=c(91, 80, 88, 86, 93)) #select all character and numeric columns df %>% select_if( function (x) is. character (x) | is. numeric (x)) team points_for points_against 1 A 99 91 2 B 90 80 3 C 86 88 4 D 88 86 5 E 95 93
1 文字列 ( team ) と 2 つの数値列 ( points_forおよびPoints_against ) は返されますが、因子列 ( conference ) は返されないことに注意してください。
例 2: クラス型と列名を指定して select_if() を使用する
次のコードは、 select_if()関数を使用して、因子クラス タイプまたはPoints_for列名を持つデータ フレーム内の列を選択する方法を示しています。
library (dplyr) #create data frame df <- data. frame (team=c('A', 'B', 'C', 'D', 'E'), conference=as. factor (c('W', 'W', 'W', 'E', 'E')), points_for=c(99, 90, 86, 88, 95), points_against=c(91, 80, 88, 86, 93)) #select all factor columns and 'points_for' column df %>% select_if( function (x) is. factor (x) | all(x == .$points_for)) conference points_for 1 W 99 2W 90 3 W 86 4 E 88 5 E 95
1 要素列と、 points_forというラベルの付いた列が返されることに注意してください。
注: |記号は R の論理「OR」演算子です。 |をいくつでも自由に使用できます。 3 つ以上の条件を使用して列を選択するため、記号を使用します。
追加リソース
次のチュートリアルでは、dplyr の他の一般的な関数の使用方法を説明します。
dplyr で across() 関数を使用する方法
dplyrでrelocate()関数を使用する方法
dplyrでslice()関数を使用する方法