首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >当接收到left_join和merge的错误时,我如何将数据和空间数据结合起来?

当接收到left_join和merge的错误时,我如何将数据和空间数据结合起来?
EN

Stack Overflow用户
提问于 2019-05-13 08:30:27
回答 2查看 2.6K关注 0票数 2

我试图将包含医院访问数据("Hospital_Visits_df")的数据与包含ZIP/ZCTA多边形和坐标("shp",从人口普查局下载)的shapefile/ merge * dataframe合并。

这两个数据文件都包含一个匹配的列,分别是ZCTAGEOID10,尽管shp包含整个美国的多边形,稍后我将讨论相关的状态。

我试图同时使用merge()left_join(),但这两种方法都会导致它们自身的错误。

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

.local(x,y,.)中的错误:检测到非唯一匹配

但这两列中都没有副本。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
shp_hospital_zip2 <- shp@data %>% 
   left_join(Hospital_Visits_df, by = c("GEOID10" = "ZCTA"))

除了我去summary(shp_hospital_zip2)的时候,它不再将它指定为空间数据帧。

我想把我的医院访问数据和空间数据合并起来,这样我就可以用传单来绘制它,但是我在第一步就被绊倒了。

我很感激你能帮我的忙。非常感谢!!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-05-13 09:34:52

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
library(rgdal)
mydf   <- read.csv("myCsv.csv")
myspdf <- readOGR("myShapefile.shp")

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

参考文献

票数 2
EN

Stack Overflow用户

发布于 2019-05-13 08:39:01

我认为您需要直接在sf-对象上使用left_join(),而不是对sf的@data部分使用。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
library(sf)

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

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

result <- shp %>% 
  left_join(Hospital_Visits_df)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56116443

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文