
Last chance! 50% off unlimited learning
Sale ends in
Bind rows (features) of sf objects
Bind columns (variables) of sf objects
# S3 method for sf
rbind(..., deparse.level = 1)# S3 method for sf
cbind(..., deparse.level = 1, sf_column_name = NULL)
st_bind_cols(...)
objects to bind
integer; see rbind
character; specifies active geometry; passed on to st_sf
cbind
called with multiple sf
objects warns about multiple geometry columns present when the geometry column to use is not specified by using argument sf_column_name
; see also st_sf.
both rbind
and cbind
have non-standard method dispatch (see cbind): the rbind
or cbind
method for sf
objects is only called when all arguments to be binded are of class sf
.
If you need to cbind
e.g. a data.frame
to an sf
, use data.frame directly and use st_sf on its result, or use bind_cols; see examples.
st_bind_cols
is deprecated; use cbind
instead.
crs = st_crs(3857)
a = st_sf(a=1, geom = st_sfc(st_point(0:1)), crs = crs)
b = st_sf(a=1, geom = st_sfc(st_linestring(matrix(1:4,2))), crs = crs)
c = st_sf(a=4, geom = st_sfc(st_multilinestring(list(matrix(1:4,2)))), crs = crs)
rbind(a,b,c)
rbind(a,b) %>% st_cast("POINT")
rbind(a,b) %>% st_cast("MULTIPOINT")
rbind(b,c) %>% st_cast("LINESTRING")
cbind(a,b,c) # warns
if (require(dplyr))
dplyr::bind_cols(a,b)
c = st_sf(a=4, geomc = st_sfc(st_multilinestring(list(matrix(1:4,2)))), crs = crs)
cbind(a,b,c, sf_column_name = "geomc")
df = data.frame(x=3)
st_sf(data.frame(c, df))
dplyr::bind_cols(c, df)
Run the code above in your browser using DataLab