R でデータ フレーム内の単一行を選択する方法
次のメソッドを使用して、R のデータ フレーム内の単一行を選択できます。
方法 1: すべての列の単一行を選択する
library (dplyr)
df %>% distinct()
方法 2: 列に基づいて単一の行を選択する
library (dplyr)
df %>% distinct(column1, . keep_all = TRUE )
方法 3: 複数の列に基づいて単一の行を選択する
library (dplyr)
df %>% distinct(column1, column2, . keep_all = TRUE )
このチュートリアルでは、次のデータ フレームを使用して各メソッドを実際に使用する方法を説明します。
#create data frame
df <- data. frame (team=c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'),
position=c('G', 'G', 'F', 'F', 'G', 'G', 'F', 'F'),
points=c(10, 10, 8, 14, 15, 15, 17, 17))
#view data frame
df
team position points
1 AG 10
2 AG 10
3AF 8
4 AF 14
5 BG 15
6 BG 15
7 BF 17
8 BF 17
例 1: すべての列で一意の行を選択する
次のコードは、データ フレーム内のすべての列にわたって一意の値を持つ行を選択する方法を示しています。
library (dplyr)
#select rows with unique values across all columns
df %>% distinct()
team position points
1 AG 10
2AF 8
3 AF 14
4 BG 15
5 BF 17
データ フレーム内に 5 つの一意の行があることがわかります。
注: 重複行が見つかった場合、最初の一意の行のみが保持されます。
例 2: 列に基づいて単一の行を選択する
次のコードは、チーム列のみに基づいて単一行を選択する方法を示しています。
library (dplyr)
#select rows with unique values based on team column only
df %>% distinct(team, . keep_all = TRUE )
team position points
1 AG 10
2 BG 15
「チーム」列には一意の値が 2 つしかないため、各値が最初に出現した行のみが保持されます。
注: .keep_all=TRUE引数は、出力内の他のすべての列を保持するように R に指示します。
例 3: 複数の列に基づいて単一の行を選択する
次のコードは、チームとポジションの列のみに基づいて単一の行を選択する方法を示しています。
library (dplyr)
#select rows with unique values based on team and position columns only
df %>% distinct(team, position, . keep_all = TRUE )
team position points
1 AG 10
2AF 8
3 BG 15
4 BF 17
「チーム」列と「ポジション」列には値の一意の組み合わせが 4 つあるため、4 行が返されます。
追加リソース
次のチュートリアルでは、R で他の一般的なタスクを実行する方法について説明します。
dplyrを使用して一意の値をフィルタリングする方法
dplyrを使って複数の条件でフィルタリングする方法
R の列の出現数をカウントする方法