Dear Claire, The below function uses a raster to stratify the region. You can tune it by changing the resolution of the raster (res) and/or n (the number of samples to take from each cell).
library(raster) gridsample <- function(xy, res, n=1) { r = raster(extent(range(xy[,1]), range(xy[,2])) + res) res(r) = res cell = cellFromXY(r, xy) uc = unique(cell) xy = cbind(xy, cell, runif( nrow(xy))) xy = xy[order(xy[,4]), ] pts = matrix(nrow=0, ncol=2) for (u in uc) { ss = subset(xy, xy[,3] == u) pts = rbind(pts, ss[1:min(n, nrow(ss)), 1:2]) } return(pts) } x = rnorm(1000, 10, 5) y = rnorm(1000, 50, 5) xy = cbind(x,y) # change the value of res (and/or n) untill nrow(s) # approximates your desired number of samples samp = gridsample(xy, res=5, n=1) nrow(samp) plot(xy, cex=0.1) points(samp, pch='x', col='red') On Sat, May 29, 2010 at 2:43 AM, Claire Teeling <cxt...@bham.ac.uk> wrote: > Dear all, > > I am carrying out some species distribution modelling based on a database of > species occurrence records of a single tree species, encompassing the entire > European > continent. The records are primarily historical and heavily biased towards > western, northern Europe. A few of the counts of records by country are shown > below to illustrate. > > CHE 12 > CZE 1 > DEN 6 > DEU 1742 > DNK 12 > ESP 237 > FIN 1 > FRA 6536 > GBR 3294 > GEO 39 > GRC 47 > HUN 2 > > I am very new to R and I'm trying to find a way to subsample in order to > obtain > a more spatially balanced sample of 300 records, from a total of 16794. I have > looked at some packages, e.g. sp, spcosa, spsurvey, spdep, have searched the > manuals and searched for similar examples. > I have also tried to stratify the data but can't find a stratum which reduces > the impact of the bias. I also have a field containing inclusion probabilities > for each record, based on country. > I just can't seem to work out how best to perform sampling to reduce the > effect > of geopolitical bias. > Any advice, for an R novice, would be very gratefully received. > > Thanks, > > Claire > _______________________________________________ > R-sig-Geo mailing list > R-sig-Geo@stat.math.ethz.ch > https://stat.ethz.ch/mailman/listinfo/r-sig-geo > _______________________________________________ R-sig-Geo mailing list R-sig-Geo@stat.math.ethz.ch https://stat.ethz.ch/mailman/listinfo/r-sig-geo