将表从R导入PostgreSQL DB

时间:2016-07-25 15:46:17

标签: r postgresql postgis

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

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

做完一些分析之后我想回去那样。我的geom列是stil格式为character / WKT。很遗憾,dbWriteTable不接受与dbGetQuery类似的论点。

  • 将空间数据从R导入PostgreSQL的最佳方法是什么?

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

1 个答案:

答案 0 :(得分:1)

我使用dbWriteTable()和postGIStools包在我的数据库上创建了一个表来插入数据(它必须是一个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;")