Выбор точек перекрытия на графике - PullRequest
1 голос
/ 22 сентября 2019

У меня есть две матрицы, которые построены следующим образом

x1=cbind(V1,V2,ID)  
X2=cbind(V1,V2,ID)  
X3=rbind(X1,X2) 

ID принимает только значения "красный" и "синий"

, когда я строю графики X1 и X2, у меня есть следующий график

enter image description here

Я хочу выбрать точки данных, которые находятся на расстоянии 1 единица (евклидово расстояние), в основном фильтруя только красные точки, которые перекрываются или квазиперекрытие синей точки или наоборот.

Красное перекрытие красного и синее перекрывающееся синее мне не интересно.

Большое спасибо за вашу помощь.

1 Ответ

0 голосов
/ 23 сентября 2019

Вам определенно нужно предоставить воспроизводимый пример , чтобы получить лучший ответ;тем не менее, я думаю, что приведенный ниже скрипт будет служить цели:

library(spatstat)


# setting seeds
set.seed(222)

# two different point patterns
X <- runifpoint(15)
Y <- runifpoint(20)
plot(X, pch=19, main="")
plot(Y, col="red", pch=19, add=T)

#you can get both which and dist from nncross
#N.which <- nncross(X,Y, k=1:20, what="which")
#N.dist  <- nncross(X,Y, k=1:20, what="dist")

out <- subset(X, nncross(X,Y, k=1:20, what="dist") < 0.1) # you may change 0.1
plot(out, col="blue", pch=19, add=T)

enter image description here

Для приведенного выше графика черные точки представляют X, а красные точки представляютY.Синий - это точки пересечения, которые находятся на расстоянии 0,1 .Это расстояние может быть дополнительно изменено.Для получения дополнительной информации см. spatstat, чтобы вычислить расстояния между двумя различными наборами данных, используя nncross.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...