0

私は使っている

xing_points <- crossing.psp(a = x, b = x, details = TRUE) %>% as.data.frame()

spatstatパッケージから、データフレームに含まれるセグメント間のすべての交点と、各交点の由来に関する詳細を取得しxます。

aただし、入力と入力の両方に同じデータフレームを使用するためb、各交差点は結果のデータフレームに 2 回表示されxing_pointsます。したがって、smarterselfcrossing.psp()を次の形式で使用するのは自然なことのように思えます。

xing_points <- selfcrossing.psp(x) %>% as.data.frame()

これは前述の問題を解決しますが、実際にはdetailsオプションがなく、結果として、各交差点を元の交差セグメントに追跡することはできません。

selfcrossing.psp()関数によって与えられる繰り返しの除外と の指示をdetails同時に達成するにはどうすればよいですか?

どうもありがとう。

4

3 に答える 3

1

これを機能リクエストとして受け取ります。の将来のバージョンでspatstatは、関数selfcrossing.pspは引数を持ちdetailsます。[これには新しい C コードが必要です。]更新については、 http: //github.com/spatstat/spatstat/releasesをご覧ください。

于 2016-04-02T01:04:07.360 に答える
1

crossing.pspこの場合、後で重複した行を使用して削除するのが最も簡単だと思います。重複した行を見つけるには、すべての列が数値であるという事実を使用するため、すべての行を並べ替えて、次の方法で重複した行を見つけることができます。

library(spatstat)
set.seed(123)
x <- psp(runif(10), runif(10), runif(10), runif(10), window=owin())
xing_points <- as.data.frame(crossing.psp(A = x, B = x, details = TRUE))
xing_points <- xing_points[!duplicated(t(apply(xing_points, 1, sort))),]
于 2016-03-31T20:10:47.370 に答える