# [R-sig-Geo] group data into squares

Roger Bivand Roger.Bivand at nhh.no
Wed Nov 29 13:43:21 CET 2006

```On Wed, 29 Nov 2006, Luis Ridao Cruz wrote:

> R-sig-geo-help,
>
> I have locations of fish abundance
> which I want to aggregate into squares.
>
> The code below creates the grid:
>
>
> library(sp)
> test <- GridTopology(c(-10.5,60),c(0.1,0.1),c(67,35))
> coordinates(test)
> coordinatevalues(test)
> yy <-SpatialGrid(grid=test)
> plot(yy,pch=16,cex=0.3,col=1)
>
> and within each cell the total abundance of fish
> should be specified.
>
> How can I do this?

Use the overlay() method. Something like:

fish <- SpatialPoints(cbind(runif(10000, bbox(yy)[1,1], bbox(yy)[1,2]),
runif(10000, bbox(yy)[2,1], bbox(yy)[2,2])))
out <- overlay(yy, fish)
out1 <- formatC(out, width=4, format="d", flag="0")
# otherwise it sorts 1, 10, 100, ...
res <- aggregate(rep(1, length(out)), list(out1), sum)

and res\$x are the counts. Because some cells have zero counts, they are
not in res\$Group.1, so maybe:

res1 <- numeric(nrow(coordinates(yy)))
res1[as.integer(as.character(res\$Group.1))] <- res\$x
# to insert the values in the cells with positive counts
table(res1)

where the zero counts are now in place. I didn't check whether the counts
had ended up in the correct cells here - too many, but:

test <- GridTopology(c(-10.5,60),c(1,1),c(7,4))
yy <-SpatialGrid(grid=test)
fish <- SpatialPoints(cbind(runif(10, bbox(yy)[1,1], bbox(yy)[1,2]),
runif(10, bbox(yy)[2,1], bbox(yy)[2,2])))
out <- overlay(yy, fish)
out1 <- formatC(out, width=4, format="d", flag="0")
res <- aggregate(rep(1, length(out)), list(out1), sum)
res1 <- numeric(nrow(coordinates(yy)))
res1[as.integer(as.character(res\$Group.1))] <- res\$x
yyy<- SpatialGridDataFrame(grid=test, data=data.frame(fish_count=res1))
image(yyy)
text(coordinates(yyy), labels=yyy\$fish_count)

looks OK.

Roger

>
>
>
>
> > version
>                _
> platform       i386-pc-mingw32
> arch           i386
> os             mingw32
> system         i386, mingw32
> status
> major          2
> minor          4.0
> year           2006
> month          10
> day            03
> svn rev        39566
> language       R
> version.string R version 2.4.0 (2006-10-03)
> >
>
> _______________________________________________
> R-sig-Geo mailing list
> R-sig-Geo at stat.math.ethz.ch
> https://stat.ethz.ch/mailman/listinfo/r-sig-geo
>

--
Roger Bivand
Economic Geography Section, Department of Economics, Norwegian School of