PBSmapping (version 2.72.1)

calcSummary: Apply Functions to Polygons in a PolySet

Description

Apply functions to polygons in a PolySet.

Usage

calcSummary (polys, rollup = 3, FUN, …)

Arguments

polys

PolySet to use.

rollup

level of detail in the results; 1 = PIDs only, by removing the SID column, and then passing each PID into FUN, 2 = outer contours only, by making hole SIDs equal to their parent's SID, and then passing each (PID, SID) into FUN, and 3 = no roll-up.

FUN

the function to apply; it must accept a vector and return a vector or scalar.

optional arguments for FUN.

Value

PolyData with columns PID, SID (may be missing), X, and Y. If FUN returns a vector of length greater than 1 (say n), names the columns X1, X2, ..., Xn and Y1, Y2, ..., Yn.

Details

If rollup equals 1, the results contain an entry for each unique PID only. When it equals 2, they contain entries for outer contours only. Finally, setting it to 3 prevents roll-up, and they contain an entry for each unique (PID, SID).

See Also

calcArea, calcCentroid, calcConvexHull, calcLength, calcMidRange, combineEvents, findPolys, locateEvents, locatePolys, makeGrid, makeProps.

Examples

Run this code
# NOT RUN {
local(envir=.PBSmapEnv,expr={
  #--- load the data (if using R)
  if (!is.null(version$language) && (version$language=="R"))
    data(nepacLL,envir=.PBSmapEnv)
  #--- calculate and print the centroids for several polygons
  print(calcSummary(nepacLL[is.element(nepacLL$PID,c(33,39,47)),],
    rollup=3, FUN=mean))
})
# }

Run the code above in your browser using DataCamp Workspace