私は緯度と経度の座標(Lat、Long)と各エントリの温度測定の深度(Depth)を含むデータフレーム(df)を持っています。本質的に、各エントリは、(x、y、z)=(緯度、長さ、深さ)の各温度測定に関する位置情報を有する。R:特定の値内の重複を見つける
私は、重複した測定場所を見つけて削除することによってデータを消去しようとしています。問題は、いくつかのエントリの緯度/経度の値は、上記のコードではないであろうという意味だけでわずかオフになっていることであるが
df = df[!(duplicated(df$Lat) & duplicated(df$Long) & duplicated(df$Depth)),]
:簡単な部分は、として扱わ正確重複を除去されそれらをキャッチしますが、それらはまだ明らかに重複しています(例:lat = 39.252880 & lat = 39.252887)。
最初のインスタンスの特定の絶対値またはパーセンテージ内にある重複を見つける方法はありますか?
私は助けていただきありがとうございます!
任意の許容値にすべての値を丸めて、重複を探すことができます。あなたの例では、小数点以下3桁まで四捨五入すると、両方の点で緯度= 39.253になります。あるいは、各測定値の間の空間距離を計算し、互いにある臨界距離内に集まった点のグループを見つけることがより理にかなっています。そして、それらのクラスター内で、同じ深さの行を見つけ、平均化します。空間距離を見つけてポイントのクラスターを特定する方法については、[このSOの答え](http://stackoverflow.com/a/21006437/496488)を参照してください。 – eipi10
最初の方法は、 'df.new = df [!duplicated(round df [、c(" lat "、" long "、" depth ")、3))]]'というコードを短くすることができます。 – eipi10