将 table 从 R 导入 PostgreSQL 数据库

Import table from R into PostgreSQL DB

我借助 RPostgreSQL 包和 ST_AsText 将一些空间数据从我的 PostgreSQL 数据库加载到 R 中:

dbGetQuery(con, "SELECT id, ST_AsText(geom) FROM table;")

在做了一些分析之后我想回到那个方向。我的 geom 列仍然被格式化为字符/WKT。不幸的是 dbWriteTable 不接受与 dbGetQuery 类似的论点。

到目前为止,我找到的唯一方法是将数据导入数据库并在额外的步骤中使用 ST_GeomFromText 来获取我的几何数据类型。

我使用 dbWriteTable() 和 postGIStools 包在我的数据库上创建了一个 table 来插入数据(它必须是一个 SpatialPolygonsDataFrame)。

## Create an empty table on DB
dbWriteTable(con, name=c("public", "<table>"), value=(dataframe[-c(1:nrow(dataframe)), ]))
require(postGIStools)
## INSERT INTO
postgis_insert(con, df=SpatialPolygonsDataFrame, tbl="table", geom_name="st_astext")
dbSendQuery(con, "ALTER TABLE <table> RENAME st_astext TO geom;")
dbSendQuery(con, "ALTER TABLE <table> ALTER COLUMN geom TYPE geometry;")