Dplyrを使用して一意の値をフィルタリングする方法
dplyrパッケージを使用して、R のデータ フレーム内の一意の値をフィルターするには、次のメソッドを使用できます。
方法 1: 列内の固有の値をフィルターする
df %>% distinct(var1)
方法 2: 複数の列の一意の値をフィルターする
df %>% distinct(var1, var2)
方法 3: すべての列の一意の値をフィルターする
df %>% distinct()
次の例は、R の次のデータ フレームで各メソッドを実際に使用する方法を示しています。
#create data frame
df <- data. frame (team=c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'),
points=c(10, 10, 8, 6, 15, 15, 12, 12),
rebounds=c(8, 8, 4, 3, 10, 11, 7, 7))
#view data frame
df
team points rebounds
1 to 10 8
2 to 10 8
3 to 8 4
4 to 6 3
5 B 15 10
6 B 15 11
7 B 12 7
8 B 12 7
例 1: 列の一意の値をフィルターする
次のコードを使用して、チーム列のみの一意の値をフィルターできます。
library (dplyr)
#select only unique values in team column
df %>% distinct(team)
team
1A
2 B
チーム列の一意の値のみが返されることに注意してください。
例 2: 複数の列の一意の値をフィルターする
次のコードを使用して、チーム列とポイント列の一意の値をフィルターできます。
library (dplyr)
#select unique values in team and points columns
df %>% distinct(team, points)
team points
1 to 10
2 to 8
3 to 6
4 B 15
5 B 12
チーム列とポイント列の一意の値のみが返されることに注意してください。
例 3: すべての列の一意の値をフィルターする
次のコードを使用して、データ フレーム内のすべての列にわたって一意の値をフィルター処理できます。
library (dplyr)
#select unique values across all columns
df %>% distinct()
team points rebounds
1 to 10 8
2 to 8 4
3 to 6 3
4 B 15 10
5 B 15 11
6 B 12 7
3 つの列すべてから一意の値が返されることに注意してください。
注: dplyr の別の関数の完全なドキュメントはここで見つけることができます。
追加リソース
次のチュートリアルでは、dplyr で他の一般的な操作を実行する方法を説明します。
dplyrを使用してインデックスによって列を選択する方法
dplyrを使用してグループごとに最初の行を選択する方法
dplyrを使って複数の条件でフィルタリングする方法
dplyrを使用して特定の文字列を含む行をフィルタリングする方法