Re: [问题] 如何在座标上抓出特定范围的资料

楼主: celestialgod (天)   2015-10-30 23:06:59
示例如下,自行延伸:
library(pracma)
# circle
circleFunc = function(r, x0 = 0, y0 = 0, n.split = 1000){
cbind(r*cos(seq(0, 2*pi, length.out = n.split)) + x0,
r*sin(seq(0, 2*pi, length.out = n.split)) + y0)
}
squreArea = matrix(runif(1000), 100)
circlePoints = circleFunc(0.5, 0.5, 0.5)
inCicle = inpolygon(squreArea[,1], squreArea[,2],
circlePoints[,1], circlePoints[,2])
plot(squreArea[,1], squreArea[,2],
xlim = c(0,1), ylim = c(0,1), xlab = "x", ylab = "y")
lines(circlePoints[,1], circlePoints[,2], col = "blue")
points(squreArea[inCicle,1], squreArea[inCicle,2], col = "red")
http://i.imgur.com/H1vyxBa.png
我之前是365万个点,是用Rcpp逐点处理的 (距离矩阵要开满大的满麻烦的)
如果点不多的话,用inpolygon很快XD
※ 引述《allen63521 (GoGoPadres)》之铭言:
: [问题类型]:
: 程式咨询(我想用R 做某件事情,但是我不知道要怎么用R 写出来)
: [软件熟悉度]:
: 新手(没写过程式,R 是我的第一次)
: [问题叙述]: 想要分析位在某些目标附近的资料
: 手上有一笔关于不动产成交的资料,内容包含成交价格、坪数、该房屋位置的横、纵座标
: 我想要用散布图把所有data的横、纵座标在平面座标上排出来,并且把几个目标定位在座标上,去讨论这几个目标附近(可能是一个圆或是矩形范围内)的房屋成交价
: 目前的想法是:
: 如果想讨论的范围是圆,可以对"该目标跟所有data"去算点和点之间的距离
: 再从所有算出来的距离中挑比较近(抓某个比例)的那些房子出来观察
: 但这个方法在目标不只有一个的时候可能就会变得比较麻烦,因为要把"每个目标"和"每栋房子"的组合都算过
: 想要请问有没有可能做到:
: 以每个目标为圆心,设定一个圆(先不考虑怎么决定半径大小),让系统去判定有哪些房子是落在这些范围里面的,就可以直接把他们抓出来看
: [关键字]:
: 范围内的资料
作者: allen63521 (GoGoPadres)   2015-10-31 12:05:00
感谢回复,我先摸摸看好了

Links booklink

Contact Us: admin [ a t ] ucptt.com