Существует ли sf-нативный (то есть «правильный») способ извлечения всего, кроме столбца геометрии, из простого объекта объектов? Это работает
df <- dplyr::select(as.data.frame(sf), -geometry)
но select( , -geometry)
шаг кажется ненужным. Кроме того, он не удаляет атрибуты геометрии.
df <- st_drop_geometry(df)
0.7-2
на кране. И это здесь rdocumentation.org/packages/sf/versions/0.7-2/topics/…Ответы:
Установите
st_geometry
свойство вNULL
.Также (хотя это не удалит
attr(nc, "sf_column"
):источник
nc$geometry <- NULL
раньше, но ваше предложение сработало. Спасибо.sf %>% mutate(geometry = NULL)
не работаетВот конвейерный подход для преобразования sf-объекта в простой фрейм данных без геометрии. Используйте
st_set_geometry()
функцию:РЕДАКТИРОВАТЬ
На 11/16/2018 ,
st_drop_geometry()
был добавлен в НФ, который делает это в явном виде:источник
Или просто
df[,-geometry_column]
если вы не хотите создавать новый объектГде:
df - твой объект
geometry_column - столбец, в котором хранится геометрия
источник
sf[, -sf$geometry]
и получаюError in Ops.sfc(grid.sf$geometry) : argument "e2" is missing, with no default
sf[, -geometry]
не в состоянии сError in -"geometry" : invalid argument to unary operator
. Воспроизвести сdata(meuse, package = "sp"); meuse_sf <- st_as_sf(meuse); meuse_sf[, -geometry]
sf
упаковке, но теперь это не так Все подмножестваsf
фреймов данных сохраняют столбец геометрии. Пожалуйста, удалите.