通过绘制圆周点周围的子集

时间:2014-06-01 16:05:51

标签: r

我为纽约市提供了6000个地理编码的结核病例。我希望通过在特定半径的每个点周围绘制圆圈来对数据进行子集化。基本上,我会使用距离在每个点周围对数据进行6000次子集化 我怎样才能做到这一点? 这是点的坐标的示例。例如,我想选择案例1,并且只选择案例1的半径1000英尺范围内的案例。然后我想对案例2执行相同的操作,依此类推。最终我应该最终得到6000个数据子集。

1 个答案:

答案 0 :(得分:1)

您可以使用dist()函数计算所有数据行之间的欧几里德距离。然后,对于生成的距离矩阵的每一行,您可以对满足半径标准的数据进行子集化。例如:

# some fake data, as a matrix
x <- rnorm(10)
y <- rnorm(10)
m <- cbind(x, y)

# distances among each row of m
d <- dist(cbind(x, y))

# maximum distance cut off
radius <- 1

# subsets of m within cut off distance of each point, a list of matrices
subsets <- apply(as.matrix(d) < radius, 1, function(i) cbind(x, y)[i, ])