¿Existe una forma nativa de SF (es decir, "correcta") de extraer todo excepto la columna de geometría de un objeto de características simples? Esto funciona
df <- dplyr::select(as.data.frame(sf), -geometry)
pero el select( , -geometry)paso se siente innecesario. Además, no elimina los atributos de geometría.

df <- st_drop_geometry(df)0.7-2en cran. Y está aquí rdocumentation.org/packages/sf/versions/0.7-2/topics/…Respuestas:
Establecer la
st_geometrypropiedad aNULL.Además (aunque esto no eliminará
attr(nc, "sf_column"):fuente
nc$geometry <- NULLantes, pero su sugerencia funcionó. Gracias.sf %>% mutate(geometry = NULL)no funcionaAquí hay un enfoque canalizable para transformar un objeto sf en un marco de datos simple sin geometría. Usa la
st_set_geometry()función:EDITAR
El 16/11/2018 ,
st_drop_geometry()se agregó a sf, que hace esto explícitamente:fuente
O simplemente
df[,-geometry_column]si no quieres crear un nuevo objetoDónde:
df - tu objeto
geometry_column - columna donde se almacena la geometría
fuente
sf[, -sf$geometry]y lo consigoError in Ops.sfc(grid.sf$geometry) : argument "e2" is missing, with no defaultsf[, -geometry]falla conError in -"geometry" : invalid argument to unary operator. Reproducir condata(meuse, package = "sp"); meuse_sf <- st_as_sf(meuse); meuse_sf[, -geometry]sfpaquete anterior , pero ahora no. Todos los subconjuntos desfmarcos de datos conservan la columna de geometría. Por favor borrar.