Rには2つの大きなデータフレームがあり、どちらも約10万行で、地理座標(緯度/経度)のリストを保持しています。アイテム間のすべての組み合わせを取得してから、関数を適用することを繰り返します。
組み合わせの数は約 110 億 (11 x 1.000.000.000) であるため、ループを使用するという当初のアイデアは適用されません。
データフレームは次のようになります。
A<-as.data.frame(cbind(rbind(-0.1822,-0.4419,0.2262),rbind(51.5307,51.4856,51.4535)))
(...)
<!-- -->
V1 . V2
-0.1822 . 51.5307
-0.4419 . 51.4856
0.2262 . 51.4535
B<- as.data.frame(cbind(rbind(-0.4764,-0.2142,-0.2197),rbind(51.5221,51.4593,51.5841)))
(...)
<!-- -->
V1 . V2
-0.4764 . 51.5221
-0.2142 . 51.4593
-0.2197 . 51.5841
出力を次のようにしたいと思います。
V1a . V2a . V1b . V2b
-0.1822 . 51.5307 . -0.4764 . 51.5221
-0.4419 . 51.4856 . -0.4764 . 51.5221
0.2262 . 51.4535 . -0.4764 . 51.5221
-0.1822 . 51.5307 . -0.2142 . 51.4593
-0.4419 . 51.4856 . -0.2142 . 51.4593
(...)
ここのスタックオーバーフローの別の投稿 ([リンク]大圏距離行列の計算) では、次の使用が提案されています。
apply(A, 1, FUN=関数(X) distHaversine(X, B))
ただし、作成された行列が大きすぎて計算を完了できないのではないかと思います。
これを効率的に解決する方法についてのアイデアはありますか? その後、Haversine関数を適用してポイント間の距離を計算することが私の目的であることを覚えておいてください。
ありがとうJ