我试图将包含医院访问数据("Hospital_Visits_df")的数据与包含ZIP/ZCTA多边形和坐标("shp",从人口普查局下载)的shapefile/ merge * dataframe合并。
这两个数据文件都包含一个匹配的列,分别是ZCTA
和GEOID10
,尽管shp
包含整个美国的多边形,稍后我将讨论相关的状态。
我试图同时使用merge()
和left_join()
,但这两种方法都会导致它们自身的错误。
shp_hospital_zip1 <- merge(shp, Hospital_Visits_df, by.x = "GEOID10", by.y = "ZCTA")
.local(x,y,.)中的错误:检测到非唯一匹配
但这两列中都没有副本。
shp_hospital_zip2 <- shp@data %>%
left_join(Hospital_Visits_df, by = c("GEOID10" = "ZCTA"))
除了我去summary(shp_hospital_zip2)
的时候,它不再将它指定为空间数据帧。
我想把我的医院访问数据和空间数据合并起来,这样我就可以用传单来绘制它,但是我在第一步就被绊倒了。
我很感激你能帮我的忙。非常感谢!!
发布于 2019-05-13 09:34:52
library(rgdal)
mydf <- read.csv("myCsv.csv")
myspdf <- readOGR("myShapefile.shp")
mynewspdf <- merge(myspdf, mydf, duplicateGeoms = T)
发布于 2019-05-13 08:39:01
我认为您需要直接在sf-对象上使用left_join()
,而不是对sf的@data部分使用。
library(sf)
class(shp)
[1] "sf" "data.frame"
class(Hospital_Visits_df)
[1] "data.frame"
result <- shp %>%
left_join(Hospital_Visits_df)
https://stackoverflow.com/questions/56116443
复制相似问题