当收到 left_join 和合并的错误时,如何将数据帧与空间数据帧组合?

How do I combine a dataframe with a spatial dataframe when receiving errors with both left_join and merge?

我正在尝试将包含医院就诊数据 ("Hospital_Visits_df") 的数据框与包含 ZIP/ZCTA 多边形和坐标的 shapefile/spatial* 数据框合并 ("shp",已下载来自 Census Bureau)。

两个数据框都包含一个匹配列,分别为 ZCTAGEOID10,尽管 shp 包含整个美国的多边形,我将缩减为相关州稍后。

我曾尝试同时使用 merge()left_join(),但两者都会导致各自的错误。

shp_hospital_zip1 <- merge(shp, Hospital_Visits_df, by.x = "GEOID10", by.y = "ZCTA")

Error in .local(x, y, ...) : non-unique matches detected

但是两列中都没有重复项。

shp_hospital_zip2 <- shp@data %>% 
   left_join(Hospital_Visits_df, by = c("GEOID10" = "ZCTA"))

这似乎有效,但当我转到 summary(shp_hospital_zip2) 时它不再将其指定为空间数据框。

我希望将我的医院就诊数据与空间数据合并,以便我可以用传单绘制它,但我在第一步就被绊倒了。

感谢您能给我的任何帮助。非常感谢!!

我认为您需要直接在 sf-object 上使用 left_join(),而不是在 sf-object.

的 @data 部分
library(sf)

class(shp)
[1] "sf"         "data.frame"

class(Hospital_Visits_df)
[1] "data.frame"

result <- shp %>% 
  left_join(Hospital_Visits_df)
library(rgdal)
mydf   <- read.csv("myCsv.csv")
myspdf <- readOGR("myShapefile.shp")

mynewspdf <- merge(myspdf, mydf, duplicateGeoms = T)

Reference