2016-07-21 4 views
0

2つのデータセットがあります。最初は、樹木が測定された2,500サイトの緯度/経度座標のリストで、2番目のデータは緯度/経度座標のリストです。 88温度監視サイト。 2,500のサイトのそれぞれを温度監視サイトに合わせたいと思います。R:大きなデータセットの最も近い座標との一致

私がこれまで持っていることはdata.set.Aとdata.set.Bでサイト間の距離を計算する

distance=geodists(lat.coord.A,long.coord.B,lat.coordB,long.coordB, K) 

であり、rは、これを実行得るために適用機能を使用してに探しています88のそれぞれのtemp。サイトを一度に。

私は、data.set.Aのサイトからdata.set.Bのサイトまでの距離を最小にするためにmin()を使用していますが、ちょうどそのデータを自分で計算しなければならないよりも、data.set.Bのサイト固有のサイトです。

これは比較的単純に行うことができますが、それを正しく行うことはできないと確信しています。 私はRにかなり新しいので、どんな助けでも大歓迎です!あなたは(data.table使用)のようなものを探している

+3

[MCVE] –

+0

を入力してくださいおそらくこれが助けになるでしょう... http://www.inside-r.org/packages/cran/spatstat/docs/nncross –

答えて

0

デカルトを行い参加:

CartesianJoin<- function(X,Y) 
    setkey(X[,c(k=1,.SD)],k)[Y[,c(k=1,.SD)],allow.cartesian=TRUE][,k:=NULL] 
LatLonWide <- CartesianJoin(data.set.A,data.set.B) 

次に使用して距離を計算します。

LatLonWide$dist <- sapply(1:nrow(LatLonWide),function(i) 
    geodists(LatLonWide$lat.coord.A[i],LatLonWide$long.coord.A[i],LatLonWide$lat.coord.B[i],LatLonWide$long.coord.B[i])) 
関連する問題