R:在矩形网格上计数点:

hea*_*rse 0 r

我有一个矩形网格,其坐标存储在变量“ gridPoints”中,如下所示:

gridData.Grid=GridTopology(c(min(data$LATITUDE),min(data$LONGITUDE)),c(0.005,0.005),c(32,32));

gridPoints = as.data.frame(coordinates(gridData.Grid))[1:1000,];

names(gridPoints) = c("LATITUDE","LONGITUDE");
plot(gridPoints,col=4);
points(data,col=2);
Run Code Online (Sandbox Code Playgroud)

绘制时,这些是图像中的黑点,在此处输入图片说明

现在,我有了另一个称为“数据”的点的数据集,当绘制它们时,它们是上面的蓝色点。

我想要计算网格中每个矩形内有多少个蓝点。每个矩形都可以由矩形的中心以及在输出中矩形内相应的蓝点数表示。同样,如果蓝点位于矩形的任意一侧,则在进行计数时可以将其视为位于矩形内。该图具有看起来像圆的蓝色和黑色点,但它们只是标准点/坐标,因此比圆小得多。在特殊情况下,矩形也可以是正方形。

bap*_*ste 5

尝试这个,

x <- seq(0,10,by=2)
y <- seq(0, 30, by=10)
grid <- expand.grid(x, y)
N <- 100
points <- cbind(runif(N, 0, 10), runif(N, 0, 30))

plot(grid, t="n", xaxs="i", yaxs="i")
points(points, col="blue", pch="+") 
abline(v=x, h=y)

binxy <- data.frame(x=findInterval(points[,1], x),
                    y=findInterval(points[,2], y))

(results <- table(binxy))
d <- as.data.frame.table(results)
xx <- x[-length(x)] + 0.5*diff(x)
d$x <- xx[d$x]
yy <- y[-length(y)] + 0.5*diff(y)
d$y <- yy[d$y]
with(d, text(x, y, label=Freq))
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明