关于我在R中的GIS问题(从readShapePoly到sf :: st_read)

时间:2019-06-17 07:41:38

标签: r sf

我需要使用sf package命令,因为readShapePoly commnad将被删除。我知道那是一个更加美好的未来...所以我想从route更改代码 thata readShapePloy路由sf :: st_read。但是我无法编写正确的代码。所以我想更正代码,如果您显示正确的sf package命令,我会很高兴。我现在在下面的命令,thx ...((我为我的英语水平差而感到抱歉,Plz过来了...)

在R中,我在sf :: st_read命令上一次又一次地为ex编写代码。但是那一次又一次地显示错误...下面的代码和下面的错误消息

usa_state <- readShapePoly("usa_state.shp", IDvar = "STATE_CODE")

没关系,但是我知道将来会更改该代码,因为该命令在将来会被删除。因此,Plz向我显示了sf软件包的路由命令。我尝试了以下代码,但我知道这在R中是无法理解的。

usa_state = sf::st_read("usa_state.shp", layer = "STATE_CODE")

错误代码...请我正确编码!我现在发生错误...

Error in CPL_read_ogr(dsn, layer, query, as.character(options), quiet,  : 
  SQL execution failed, cannot open layer.
In addition: Warning message:
In CPL_read_ogr(dsn, layer, query, as.character(options), quiet,  :
  GDAL Error 1: SQL Expression Parsing Error: syntax error, unexpected 
identifier, expecting SELECT or '('. Occurred around : "STATE_CODE"

1 个答案:

答案 0 :(得分:0)

usa_state = sf::st_read("usa_state.shp", layer = "STATE_CODE")差不多了。

我猜测STATE_CODEusa_state.shp shapefile中的一个字段。您不需要为st_read()函数提供任何字段名称。只需使用:

library(sf)
usa_state = st_read("usa_state.shp")

您需要确保usa_state.shp文件(及其关联的文件)在当前工作目录中,或者您需要使用完整路径:

usa_state = st_read("/path/to/usa_state.shp")

sf软件包非常值得了解。这使我在R中的所有空间工作变得更加容易。