これは私が少しの間戦った問題であり、そこには良い答えが見つかりませんでした. 最終的にはRで解決しましたが、他の人が必要とする場合に備えて投稿すると思いました。誰かがよりエレガントなソリューションを持っている場合は、ぜひ見てみたいです。これはちょっと力ずくの努力です。
一連のペアの XY (デカルト) 座標があります。簡単な atan() コマンドを使用して、それらの間の角度を簡単に取得できます。ただし、コンパス (極?基軸?) 方向 (北 = 0°、東 = 90° など) の角度が必要です。これは、データとデカルト角度を作成するための最小限の例です。コンパス角度へのブルート フォース変換を以下に掲載しました。度数変換 (ラジアンから) は、'circular' パッケージの deg() を使用します。
require(circular)
test <- data.frame(x=c(0,1,1,1,0,-1,-1,-1),y=c(1,1,0,-1,-1,-1,0,1))
test$angle <- deg(atan(test$y/test$x))
test
...生産します
x y angle
1 0 1 90
2 1 1 45
3 1 0 0
4 1 -1 -45
5 0 -1 -90
6 -1 -1 45
7 -1 0 0
8 -1 1 -45
左下および左上の象限への角度は、右下および右上の象限への角度と同じであり、ベクトルの方向性が失われていることに注意してください。