[R-sig-Geo] Spatial Join - over and weighted mean

Els Ducheyne educheyne at avia-gis.be
Fri Mar 30 14:29:18 CEST 2012


Dear Edzer
I have a point shapefile containing values of vaccination coverage (Z) estimated via a sample (SampleSize)
The aim is to obtain a weighted mean of vaccination coverage per admin unit

Below sample code

> studyzone <- readShapePoly(paste(backgroundfilesdir,"GDAM_studyzone.shp",sep=""))
> slot(studyzone,'data') <- as.data.frame(slot(studyzone,"data")$OBJECTID)
> names(slot(studyzone,'data')) <- c("OBJECTID")
> shapefilename <- paste(shapefiledir,shortNameIndicator,"_",production.date,sep="")
> point.shapefile <- readShapePoints(paste(shapefilename,".shp",sep=""))
> summary(point.shapefile)
Object of class SpatialPointsDataFrame
Coordinates:
            min   max
coords.x1   0.0 41.96
coords.x2 -11.1 16.73
Is projected: NA 
proj4string : [NA]
Number of points: 76
Data attributes:
       Id              Z            SampleSize    
 Min.   : 1.00   Min.   :0.0400   Min.   : 388.0  
 1st Qu.:19.75   1st Qu.:0.2200   1st Qu.: 549.2  
 Median :38.50   Median :0.4300   Median : 659.0  
 Mean   :38.50   Mean   :0.5437   Mean   :1562.1  
 3rd Qu.:57.25   3rd Qu.:0.7450   3rd Qu.:2480.8  
 Max.   :76.00   Max.   :2.4000   Max.   :6487.0  
                                  NA's   :   2.0  


For the moment I've used the following function to obtain the normal mean
aggregate.data<-over(studyzone,point.shapefile,fn=mean)

I know I should define the weighted.mean by weighted.mean(slot(point.shapefile,'data')$Z,slot(point.shapefile,'data')$SampleSize,na.rm=T) but how to include this in the over function is not clear to me

Thanks for your help
Els

On 30 Mar 2012, at 14:17, Edzer Pebesma wrote:

> Els, what being weighted by what exactly? Any chance you can illustrate
> your problem by something we can reproduce?
> 
> On 03/30/2012 01:58 PM, Els Ducheyne wrote:
>> Dear R-SIG-GEO list
>> 
>> I want to aggregate the mean value of points in a polygon using the over function. 
>> #Read the shapefile with the measurements
>> shapefilename <- paste(shapefiledir,shortNameIndicator,"_",production.date,sep="")
>> point.shapefile <- readShapePoints(paste(shapefilename,".shp",sep=""))
>> names(slot(point.shapefile,'data')) <- c("ID",shortNameIndicator)
>> 
>> 
>> #aggregate per polygon by mean and save as shapefile
>> aggregate.data<-over(studyzone,point.shapefile,fn=mean)
>> row.names(aggregate.data) <- row.names(aggregate.data)
>> outPolDF <- SpatialPolygonsDataFrame(studyzone,aggregate.data,match.ID=T)
>> writePolyShape(outPolDF,paste(shapefiledir,shortNameIndicator,"_poly_",production.date,".shp",sep=""))
>> 
>> 
>> While this works using the mean function I am unsure how to proceed for a weighted mean - does anyone have a suggestion?
>> 
>> Many thanks
>> Els
>> 
>> _______________________________________________
>> R-sig-Geo mailing list
>> R-sig-Geo at r-project.org
>> https://stat.ethz.ch/mailman/listinfo/r-sig-geo
> 
> -- 
> Edzer Pebesma
> Institute for Geoinformatics (ifgi), University of Münster
> Weseler Straße 253, 48151 Münster, Germany. Phone: +49 251
> 8333081, Fax: +49 251 8339763  http://ifgi.uni-muenster.de
> http://www.52north.org/geostatistics      e.pebesma at wwu.de
> 
> _______________________________________________
> R-sig-Geo mailing list
> R-sig-Geo at r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-sig-geo



More information about the R-sig-Geo mailing list