У меня есть данные с координатами 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](https://i.stack.imgur.com/ob0xk.png)
Что является более точным и желательно эффективным способом сделать это? Метод, который может разместить несколько вложенных группирующих переменных.
Пожалуйста и заранее спасибо.