A: 複数の列にわたって一意の行を見つける方法
次のメソッドを使用して、R のデータ フレームの複数の列にわたって一意の行を検索できます。
方法 1: 複数の列にわたって一意の行を検索する (他の列を削除する)
df_unique <- unique(df[c(' col1 ', ' col2 ')])
方法 2: 複数の列にわたって一意の行を検索する (他の列を保持する)
df_unique <- df[!duplicated(df[c(' col1 ', ' col2 ')]),]
次の例は、次のデータ フレームでこれらの各メソッドを実際に使用する方法を示しています。
#create data frame
df <- data. frame (conf=c('East', 'East', 'East', 'West', 'West', 'West'),
pos=c('G', 'G', 'F', 'G', 'F', 'F'),
dots=c(33, 28, 31, 39, 34, 40))
#view data frame
df
conf pos points
1 East G 33
2 East G 28
3 East F 31
4 West G 39
5 West F 34
6 West F 40
方法 1: 複数の列にわたって一意の行を検索する (他の列を削除する)
次のコードは、データ フレームのconf列とpos列で一意の行を検索する方法を示しています。
#find unique rows across conf and pos columns
df_unique <- unique(df[c(' conf ', ' pos ')])
#view results
df_unique
conf pos
1 East G
3 East
4 West G
5 West
結果は 4 つの固有の行になります。
また、ポイント列が結果から自動的に削除されていることにも注意してください。
方法 2: 複数の列にわたる単一の行を検索する (他の列を削除する)
次のコードは、データ フレームのconf列とpos列で単一行を検索し、その値をPoints列に保持する方法を示しています。
#find unique rows across conf and pos columns
df_unique <- df[!duplicated(df[c(' conf ', ' pos ')]),]
#view results
df_unique
conf pos points
1 East G 33
3 East F 31
4 West G 39
5 West F 34
conf列とpos列には単一行のみが存在し、 points列の値は保持されることに注意してください。
最初の一意の値のみが保持されることに注意することが重要です。
たとえば、最初の 2 列に「East」と「G」を含む 2 つの行がありましたが、この一意の組み合わせが最初に出現したポイント値 (33) のみが最終データ フレームに保持されました。
同様に、最初の 2 列に「West」と「F」を含む 2 つの行がありましたが、この一意の組み合わせが最初に出現したポイント値 (34) のみが最終データ フレームに保持されました。
追加リソース
次のチュートリアルでは、R で他の一般的なタスクを実行する方法について説明します。
Rの列内で一意の値を見つける方法
Rでグループごとに一意の値をカウントする方法
dplyrを使用して一意の値をフィルタリングする方法