Dplyr で文字列で始まらない列を選択する方法
R のdplyrパッケージの次の関数を使用して、特定の文字列で始まらない列を選択できます。
方法 1: 特定の文字列で始まらない列を選択する
df %>%
select(-starts_with(" string1 "))
方法 2: 複数の文字列のいずれかで始まらない列を選択する
df %>% select(-starts_with(c(" string1 ", " string2 ", " string3 ")))
次の例は、R の次のデータ フレームでこれらの各メソッドを実際に使用する方法を示しています。
#create data frame df <- data. frame (store1_sales=c(12, 10, 14, 19, 22, 25, 29), store1_returns=c(3, 3, 2, 4, 3, 2, 1), store2_sales=c(8, 8, 12, 14, 15, 13, 12), store2_returns=c(1, 2, 2, 1, 2, 1, 3), promotions=c(0, 1, 1, 1, 0, 0, 1)) #view data frame df store1_sales store1_returns store2_sales store2_returns promotions 1 12 3 8 1 0 2 10 3 8 2 1 3 14 2 12 2 1 4 19 4 14 1 1 5 22 3 15 2 0 6 25 2 13 1 0 7 29 1 12 3 1
例 1: 特定の文字列で始まらない列を選択する
次のコードは、 -starts_with()関数を使用して、データ フレーム内の「store1」で始まらない列のみを選択する方法を示しています。
library (dplyr)
#select all columns that do not start with "store1"
df %>%
select(-starts_with(" store1 "))
store2_sales store2_returns promotions
1 8 1 0
2 8 2 1
3 12 2 1
4 14 1 1
5 15 2 0
6 13 1 0
7 12 3 1
「store1」で始まる 2 つの列は返されないことに注意してください。
例 2: 複数の文字列のいずれかで始まらない列を選択する
次のコードは、 -starts_with()関数を使用して、データ フレーム内の「store1」または「prom」で始まらない列のみを選択する方法を示しています。
library (dplyr)
#select all columns that do not start with "store1" or "prom"
df %>%
select(-starts_with(c(" store1 ", " prom ")))
store2_sales store2_returns
1 8 1
2 8 2
3 12 2
4 14 1
5 15 2
6 13 1
7 12 3
「store1」または「prom」で始まる列は返されないことに注意してください。
注: デフォルトでは、 start_with()関数は大文字と小文字を区別しません。関数で大文字と小文字を区別するには、関数でignore.case=FALSE引数を使用します。
追加リソース
次のチュートリアルでは、dplyr を使用して他の一般的なタスクを実行する方法について説明します。
dplyr を使用して名前で列を選択する方法
dplyrを使用してインデックスによって列を選択する方法
dplyr で複数の条件で select_if を使用する方法