Czy istnieje natywny (sf „poprawny”) sposób wyodrębnienia wszystkiego oprócz kolumny geometrii z prostego obiektu obiektów? To działa
df <- dplyr::select(as.data.frame(sf), -geometry)
ale select( , -geometry)
krok wydaje się niepotrzebny. Ponadto nie usuwa atrybutów geometrii.
df <- st_drop_geometry(df)
0.7-2
na Cran. I jest tutaj rdocumentation.org/packages/sf/versions/0.7-2/topics/…Odpowiedzi:
Ustaw
st_geometry
właściwość naNULL
.Ponadto (choć nie spowoduje to usunięcia
attr(nc, "sf_column"
):źródło
nc$geometry <- NULL
wcześniej, ale twoja sugestia załatwiła sprawę. Dziękuję Ci.sf %>% mutate(geometry = NULL)
nie działaOto podejście oparte na potoku do przekształcenia obiektu SF w prostą ramkę danych bez geometrii. Użyj
st_set_geometry()
funkcji:EDYTOWAĆ
W dniu 11/16/2018 ,
st_drop_geometry()
dodano do SF, który robi to wyraźnie:źródło
Lub po prostu,
df[,-geometry_column]
jeśli nie chcesz tworzyć nowego obiektuGdzie:
df - twój obiekt
geometry_column - kolumna, w której przechowywana jest geometria
źródło
sf[, -sf$geometry]
iError in Ops.sfc(grid.sf$geometry) : argument "e2" is missing, with no default
sf[, -geometry]
nie działa zError in -"geometry" : invalid argument to unary operator
.data(meuse, package = "sp"); meuse_sf <- st_as_sf(meuse); meuse_sf[, -geometry]
sf
pakietach, ale teraz już nie. Wszystkie podzbiorysf
ramek danych zachowują kolumnę geometrii. Proszę usunąć.