Existe uma maneira nativa sf (isto é, "correta") de extrair tudo, exceto a coluna geometria, de um objeto de recursos simples? Isso funciona
df <- dplyr::select(as.data.frame(sf), -geometry)
mas o select( , -geometry)
passo parece desnecessário. Além disso, ele não remove os atributos de geometria.
df <- st_drop_geometry(df)
0.7-2
no cran. E é aqui rdocumentation.org/packages/sf/versions/0.7-2/topics/…Respostas:
Defina a
st_geometry
propriedade comoNULL
.Além disso (embora isso não remova o
attr(nc, "sf_column"
):fonte
nc$geometry <- NULL
antes, mas sua sugestão fez o truque. Obrigado.sf %>% mutate(geometry = NULL)
não funcionaAqui está uma abordagem pipeable para transformar um objeto sf em um quadro de dados simples, sem geometria. Use a
st_set_geometry()
função:EDITAR
Em 16/11/2018 ,
st_drop_geometry()
foi adicionado ao sf, que faz isso explicitamente:fonte
Ou apenas
df[,-geometry_column]
se você não quiser criar um novo objetoOnde:
df - seu objeto
geometry_column - coluna onde a geometria está armazenada
fonte
sf[, -sf$geometry]
e receboError in Ops.sfc(grid.sf$geometry) : argument "e2" is missing, with no default
sf[, -geometry]
falha comError in -"geometry" : invalid argument to unary operator
. Reproduzir comdata(meuse, package = "sp"); meuse_sf <- st_as_sf(meuse); meuse_sf[, -geometry]
sf
pacote anterior , mas agora não. Todo o subconjunto desf
quadros de dados preserva a coluna de geometria. Por favor delete.