выбрать данные координат по радиусу из заданной точки - PullRequest
0 голосов
/ 31 октября 2018

У меня есть данные с координатами x, y, для которых я хотел бы сделать выбор на основе радиуса от заданной точки. Пока что мой поиск дал только решения, более ориентированные на географические данные, и я хотел узнать, есть ли общий, не гео способ сделать это.

Пример данных:

set.seed(00) 
dt = data.table("group" = rep(1:2, times=2, each=50),"xloc" = runif(100, min=-1, max=1),"yloc" = runif(100, min=-1, max=1))

Квадратная попытка:

Для данных примера я бы хотел круглую оболочку радиусом 0.5, начиная с [0,0]. Но моя попытка привела меня к квадратному ограждению:

dt$position = "out"
dt$position[dt$xloc >-0.5 & dt$xloc <0.5 & dt$yloc >-0.5 & dt$yloc <0.5] = "in"

... который выглядит так с очевидной утечкой.

ggplot(dt, aes(xloc, yloc))+geom_point(aes(colour=factor(position)))+
  annotate("path",
           x=0+.5*cos(seq(0,2*pi,length.out=100)),
           y=0+.5*sin(seq(0,2*pi,length.out=100)))+facet_grid(~group)

enter image description here

Что является более точным и желательно эффективным способом сделать это? Метод, который может разместить несколько вложенных группирующих переменных.

Пожалуйста и заранее спасибо.

1 Ответ

0 голосов
/ 31 октября 2018

Я думаю, что изменение второго куска вашего кода, показанного здесь, должно работать:

dt$position = "out"
dt$position[(dt$xloc)^2 + (dt$yloc)^2 <0.5] = "in"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...