Rで特定の文字列を含む列を選択する方法
R のdplyrパッケージの次の関数を使用して、特定の文字列を含む列を選択できます。
方法 1: 特定の文字列を含む列を選択する
df %>%
select(matches(" string1 "))
方法 2: 複数の文字列のいずれかを含む列を選択する
df %>%
select(matches(" string1|string2|string3 "))
次の例は、R の次のデータ フレームでこれらの各メソッドを実際に使用する方法を示しています。
#create data frame df <- data. frame (mavs=c(12, 10, 14, 19, 22, 25, 29), cavs=c(22, 41, 14, 15, 15, 19, 22), hornets=c(8, 8, 12, 14, 15, 13, 12), spurs=c(10, 12, 12, 16, 22, 28, 30), nets=c(9, 7, 10, 22, 28, 23, 25)) #view data frame df mavs cavs hornets spurs nets 1 12 22 8 10 9 2 10 41 8 12 7 3 14 14 12 12 10 4 19 15 14 16 22 5 22 15 15 22 28 6 25 19 13 28 23 7 29 22 12 30 25
例 1: 特定の文字列を含む列を選択する
次のコードは、 matches()関数を使用して、名前のどこかに文字列「avs」を含む列のみを選択する方法を示しています。
library (dplyr)
#select all columns that contain "avs" in the name
df %>%
select(matches(" avs "))
mavs cavs
1 12 22
2 10 41
3 14 14
4 19 15
5 22 15
6 25 19
7 29 22
名前に「avs」を含む列のみが返されます。
この場合、返される列は「mavs」と「cavs」のみです。
例 2: 複数の文字列のいずれかを含む列を選択する
次のコードは、 matches()関数を使用して、名前のどこかに「avs」または「ets」を含む列のみを選択する方法を示しています。
library (dplyr)
#select all columns that contain "avs" or "ets" in the name
df %>%
select(matches(" avs|ets "))
mavs cavs hornets nets
1 12 22 8 9
2 10 41 8 7
3 14 14 12 10
4 19 15 14 22
5 22 15 15 28
6 25 19 13 23
7 29 22 12 25
名前に「avs」または「ets」を含む列のみが返されます。
垂直バー ( | ) は R の「 OR 」演算子であることに注意してください。
これらの「OR」演算子を好きなだけ連鎖させて、さまざまな文字列の 1 つを含む列を選択してください。
追加リソース
次のチュートリアルでは、dplyr を使用して他の一般的なタスクを実行する方法について説明します。
dplyr を使用して名前で列を選択する方法
dplyrを使用してインデックスによって列を選択する方法
dplyr で複数の条件で select_if を使用する方法