Gibt es eine sf-native (dh "richtige") Möglichkeit, alles außer der Geometriespalte aus einem einfachen Feature-Objekt zu extrahieren? Das funktioniert
df <- dplyr::select(as.data.frame(sf), -geometry)
aber der select( , -geometry)
schritt fühlt sich unnötig an. Außerdem werden die Geometrieattribute nicht entfernt.
df <- st_drop_geometry(df)
0.7-2
auf Kran. Und es ist hier rdocumentation.org/packages/sf/versions/0.7-2/topics/…Antworten:
Setzen Sie die
st_geometry
Eigenschaft aufNULL
.Auch (obwohl dies das nicht entfernt
attr(nc, "sf_column"
):quelle
nc$geometry <- NULL
, aber Ihr Vorschlag hat es geschafft. Danke.sf %>% mutate(geometry = NULL)
funktioniert nichtHier ist ein Pipeline-Ansatz, um ein sf-Objekt in einen einfachen Datenrahmen ohne Geometrie umzuwandeln. Verwenden Sie die
st_set_geometry()
Funktion:BEARBEITEN
Am 2018.11.16 ,
st_drop_geometry()
wurde sf, zugegeben , die dies ausdrücklich tut:quelle
Oder nur,
df[,-geometry_column]
wenn Sie kein neues Objekt erstellen möchtenWo:
df - dein Objekt
geometry_column - Spalte, in der die Geometrie gespeichert ist
quelle
sf[, -sf$geometry]
und bekommeError in Ops.sfc(grid.sf$geometry) : argument "e2" is missing, with no default
sf[, -geometry]
scheitert mitError in -"geometry" : invalid argument to unary operator
. Reproduzieren Sie mitdata(meuse, package = "sp"); meuse_sf <- st_as_sf(meuse); meuse_sf[, -geometry]
sf
Paket so, aber jetzt nicht. Alle Teilmengen vonsf
Datenrahmen behalten die Geometriespalte bei. Bitte löschen.