Here is a simple example. I have a shapefile of three US states:
This is the code that creates the shapefile.
library(USAboundaries)
library(sf)
library(dplyr)
states <- us_states(map_date = "2000-01-01", resolution = "high", states = c("CA", "OR", "WA")) %>%
mutate(group_var = if_else(state_abbr == "CA", 1, 2))
plot(st_geometry(states))
Now, I'm trying to combine the geometries based on the value of group_var
, so California should stand alone while Oregon and Washington get lumped together into a single geometry. Unfortunately, st_combine
doesn't take a grouping variable, and although the aggregate
function in sf
looks promising, code like this throws an error that group_var
cannot be found.
x <- aggregate(states, group_var, mean)
Furthermore, aggregate
requires a function as a third argument, presumably because aggregate
in the stats
package applies the function to the data, but in this case, there isn't any data to apply a function to. I'm just trying to combine/aggregate the shapefiles.