我使用
sf::read_sf
从我的 PSQL 数据库加载表。
查询工作正常,但它没有获取我的 id 列,该列的格式为 INT。它也是相关表的主键。
我通过在 PSQL 中添加 id 列的副本解决了该问题,该副本正在按预期获取。但感觉……很奇怪。
代码:
#### LOAD DATA ####
library(sf)
dsn <- paste("PG:dbname='[dbname]' host='[host]' port='5432' user='[user]' password='[password]')
#load spatial data ('type = 0001' sets geometry type = point, '0003' sets polygon)
ausw_input <- read_sf(dsn, 'regr.hvv_ausw2_hst_nonull_nosingle', type = 0001)
表格的相关列是:
h_id | INT # primary key, not being fetched
h_id_v | VARCHAR # copy of h_id, being fetched correctly
...
[~30 more columns, including lon/lat]
没有有效的解决方案,但至少解释如何规避该问题:
在我的数据中,还有另一个 INT 列,它不是我的主键。正在正确获取它。看来 INT 和 PK 的组合有问题。我的 INT & PK 列包含 5-7 位数字的条目,例如 10001 或 8006484
--> 如果您遇到同样的问题,只需复制您的 PK 列即可启用
sf::read_sf
来获取它。