Hi @woodward
Thans for asking, I should probably be a bit more thorough.
dplyr::full_join()
full_join()
expects the right-hand side element to be a dataframe. I get the error:
Error: y should be a data.frame; for spatial joins, use st_join
... which makes sense, as I can't expect dplyr to know how to match rows according to geometries, as there are many ways to do that. It redirects the user to the spatial joins provided by sf, which use the st_join()
function along with a predicate function to define how to match geometries. Unfortunately, there isn't a predicate function that just says "all geometries are different, do not try to match them" (but really, there shouldn't be one, as it wouldn't qualify as a "spatial join" anyway).
dplyr::bind_rows()
bind_rows()
doesn't merge the two geometry columns; it keeps them separate as "geometry" and "source.geometry", with the following warning messages:
Warning messages:
1: In bind_rows_(x, .id) :
Vectorizing 'sfc_POINT' elements may not preserve their attributes
2: In bind_rows_(x, .id) :
Vectorizing 'sfc_POINT' elements may not preserve their attributes
Not sure if this is to be expected at all?