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)
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.