首页 > 解决方案 > 从给定点按半径选择坐标数据

问题描述

我有带有 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)

在此处输入图像描述

有什么更准确、更有效的方法来做到这一点?一种可以容纳多个嵌套分组变量的方法。

请提前感谢您。

标签: r

解决方案


我认为将此处显示的代码的第二块更改为此应该可行:

dt$position = "out"
dt$position[(dt$xloc)^2 + (dt$yloc)^2 <0.5] = "in"

推荐阅读