A: 列が 2 つの値の間にある行をフィルターする方法
次のメソッドを使用して、特定の列が 2 つの値の間にある R のデータ フレームをフィルターできます。
方法 1: Base R を使用する
df_new <- subset(df, points %in% 100 : 120 )
方法 2: dplyr を使用する
library (dplyr) df_new <- df %>% filter(between(points, 100 , 120 ))
これらの例はどちらも、 Points列の値が100 ~ 120の範囲にある行のみを含むようにデータ フレームをフィルター処理します。
次の例は、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
例 1: Base R を使用して列が 2 つの値の間にあるフィルター
R Base subset()関数で次の構文を使用して、ポイント列の値が 100 ~ 120 の行のみを含むようにデータ フレームをフィルターできます。
#filter for rows where value in points column is between 100 and 120 df_new <- subset(df, points %in% 100 : 120 ) #view updated data frame df_new team points assists 1 Mavs 104 22 2 Pacers 110 30 3 Nets 114 20
ポイント列の値が 100 ~ 120 の行のみが保持されることに注意してください。
値がこの範囲外にある他の行はすべて削除されます。
例 2: dplyr を使用して列が 2 つの値の間にあるフィルター
R の dplyr パッケージのfilter()関数とbetween()関数で次の構文を使用して、ポイント列の値が 100 ~ 120 の範囲にある行のみを含むようにデータ フレームをフィルターできます。
library (dplyr) #filter for rows where value in points column is between 100 and 120 df_new <- df %>% filter(between(points, 100 , 120 )) #view updated data frame df_new team points assists 1 Mavs 104 22 2 Pacers 110 30 3 Nets 114 20
ポイント列の値が 100 ~ 120 の行のみが保持されることに注意してください。
また、このメソッドは基本的な R メソッドと同じ結果を生成することにも注意してください。
注: dplyr のフィルター関数の完全なドキュメントはここで見つけることができます。
追加リソース
次のチュートリアルでは、R で他の一般的な操作を実行する方法について説明します。
%in% を使用して R のリスト内の値を持つ行をフィルターする方法
dplyrを使って複数の条件でフィルタリングする方法
dplyrを使用して特定の文字列を含む行をフィルタリングする方法