
Last chance! 50% off unlimited learning
Sale ends in
Get, set, or replace geometry from an sf object
# S3 method for sfc
st_geometry(obj, ...)st_geometry(obj, ...)
# S3 method for sf
st_geometry(obj, ...)
# S3 method for sfc
st_geometry(obj, ...)
# S3 method for sfg
st_geometry(obj, ...)
st_geometry(x) <- value
st_set_geometry(x, value)
st_drop_geometry(x)
object of class sf
or sfc
ignored
object of class data.frame
object of class sfc
, or character
st_geometry returns an object of class sfc, a list-column with geometries
st_geometry
returns an object of class sfc. Assigning geometry to a data.frame
creates an sf object, assigning it to an sf object replaces the geometry list-column.
when applied to a data.frame
and when value
is an object of class sfc
, st_set_geometry
and st_geometry<-
will first check for the existence of an attribute sf_column
and overwrite that, or else look for list-columns of class sfc
and overwrite the first of that, or else write the geometry list-column to a column named geometry
. In case value
is character and x
is of class sf
, the "active" geometry column is set to x[[value]]
.
the replacement function applied to sf
objects will overwrite the geometry list-column, if value
is NULL
, it will remove it and coerce x
to a data.frame
.
st_drop_geometry
drops the geometry of its argument, and reclasses it accordingly
# NOT RUN {
df = data.frame(a = 1:2)
sfc = st_sfc(st_point(c(3,4)), st_point(c(10,11)))
st_geometry(sfc)
st_geometry(df) <- sfc
class(df)
st_geometry(df)
st_geometry(df) <- sfc # replaces
st_geometry(df) <- NULL # remove geometry, coerce to data.frame
sf <- st_set_geometry(df, sfc) # set geometry, return sf
st_set_geometry(sf, NULL) # remove geometry, coerce to data.frame
# }
Run the code above in your browser using DataLab