为什么当我在R中将shapefile导出为CSV时,文件结果不保持相同的结构?

6l7fqoea  于 2023-03-05  发布在  其他
关注(0)|答案(1)|浏览(89)

我有一个包含三列的shapefile:gid,它是ID,rud,我感兴趣的变量,以及几何图形。
我正在尝试使用以下代码将该shapefile导出为csv:

write.csv(grid, "path\\grid_rud.csv")

这里的网格是我的shapefile。然而,CSV文件不只有三列,它看起来很奇怪(看下面的图片)。我试过添加列名或行名,但结果是一样的。
我想是因为几何列的原因。我已经尝试过删除该列,导出后:

grid = grid %>% select('gid','rud')

然而,柱的几何形状并没有消失。我知道如何将我的文件导出为csv吗?我只对导出gid和rud列感兴趣。

sc4hvdpw

sc4hvdpw1#

要去掉geometry列,你必须先将你的grid sf对象重新分类为其他类型,比如data.frame,sf::st_drop_geometry()as.data.frame()as_tibble()等等也可以。
或者,如果您碰巧从Shapefile读取数据,但根本不关心形状,则可以仅从 dbf 文件导入属性表。

library(dplyr)
# nc example from sf library
nc <- sf::st_read(system.file("shape/nc.shp", package="sf"))

# select 2 columns from sf object, geometry is still there
nc %>% select(NAME, CNTY_ID) %>% head()
#> Simple feature collection with 6 features and 2 fields
#> Geometry type: MULTIPOLYGON
#> Dimension:     XY
#> Bounding box:  xmin: -81.74107 ymin: 36.07282 xmax: -75.77316 ymax: 36.58965
#> Geodetic CRS:  NAD27
#>          NAME CNTY_ID                       geometry
#> 1        Ashe    1825 MULTIPOLYGON (((-81.47276 3...
#> 2   Alleghany    1827 MULTIPOLYGON (((-81.23989 3...
#> 3       Surry    1828 MULTIPOLYGON (((-80.45634 3...
#> 4   Currituck    1831 MULTIPOLYGON (((-76.00897 3...
#> 5 Northampton    1832 MULTIPOLYGON (((-77.21767 3...
#> 6    Hertford    1833 MULTIPOLYGON (((-76.74506 3...

# drop geometry, select 2 columns from resulting data.frame
nc_df <- sf::st_drop_geometry(nc)
nc_df %>% select(NAME, CNTY_ID) %>% head()
#>          NAME CNTY_ID
#> 1        Ashe    1825
#> 2   Alleghany    1827
#> 3       Surry    1828
#> 4   Currituck    1831
#> 5 Northampton    1832
#> 6    Hertford    1833

# if you don't care about geometry, you can read just the dbf of Shapefile
nc_dbf <- foreign::read.dbf(system.file("shape/nc.dbf", package="sf"))
nc_dbf %>% select(NAME, CNTY_ID) %>% head()
#>          NAME CNTY_ID
#> 1        Ashe    1825
#> 2   Alleghany    1827
#> 3       Surry    1828
#> 4   Currituck    1831
#> 5 Northampton    1832
#> 6    Hertford    1833

创建于2023年2月26日,使用reprex v2.0.2

相关问题