¿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-2
en cran. Y está aquí rdocumentation.org/packages/sf/versions/0.7-2/topics/…Respuestas:
Establecer la
st_geometry
propiedad aNULL
.Además (aunque esto no eliminará
attr(nc, "sf_column"
):fuente
nc$geometry <- NULL
antes, 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 default
sf[, -geometry]
falla conError in -"geometry" : invalid argument to unary operator
. Reproducir condata(meuse, package = "sp"); meuse_sf <- st_as_sf(meuse); meuse_sf[, -geometry]
sf
paquete anterior , pero ahora no. Todos los subconjuntos desf
marcos de datos conservan la columna de geometría. Por favor borrar.