私はRの新人です。私の現在のプロジェクトでは、特定のイベントに関連するヒートマップを描く必要があります。このような事象の観測は約200万件あり、観測ごとに長い緯度座標があります。また、地図データをデータフレームに変換し、データフレームには71個の地区が含まれ、各地区は座標セットで定義されています。イベントのどの観測所がどの地区に属するのかを判断する必要があります。私は、次のコードを使用しています:大規模なデータセットに対してポイントをポリゴンに入れてRを効果的に使用するかどうかをチェックする方法は?
for (row in 1:nrow(data2015)){
point.x=data2015[row,"Latitude"]
point.y=data2015[row,"Longitude"]
for (name in names(polygonOfdis)){
if (point.in.polygon(point.x, point.y, polygonOfdis[[name]]$lat, polygonOfdis[[name]]$long, mode.checked=FALSE)){
count[[name]]<-count[[name]]+1
break
}
}
}
data2015はpolygonOfdisは、各地区のデータ・セットで、イベント用のデータセットです。
小規模なデータセットの場合、このアルゴリズムは問題なく動作しますが、データセットでは10時間以上実行されます(現在のサイズの1/4のデータセットの場合、このアルゴリズムは1〜2分)。どんな所見がどの地区に属するのかを知る良い方法があれば、私は疑問に思っていますか?私の問題は、point.in.polygon関数が時間がかかり過ぎて、これを行う他の関数があるかどうか疑問に思っていますか?
PS:現在のデータは実際に処理する必要がある実際のデータの1/10に過ぎないため、これを行うにはもっと速い方法が本当に必要です。
コードとサンプルデータを入力すると返信を受け取る可能性が高くなります。 – Dave2e