【问题标题】:Merge two dataframes based on latitude and longitude根据纬度和经度合并两个数据框
【发布时间】:2019-10-30 10:56:06
【问题描述】:

我有一个来自 shapefile 处理的数据框,如下所示:

id=c(0,0)
long<-c(140.9619,140.9626   )
lat<-c(-35.79979,-35.77946)
order<-c(1,2)
hole<-c(FALSE,FALSE)
piece<-c(1,1)
group<-c(0.1,0.1)

dtshp<-data.frame(id,long,lat,order,hole,piece,group)

我还有一个数据框,我想使用它的值来创建基于 pop 的等值线图。

Town<-c("WATSONIA","NORTH MELBOURNE","MOONEE PONDS")
Latitude<-c("-37.71610","-37.80040","-37.76010")
Longitude<-c("145.0804","144.9544","144.9228")
pop<-c(1232131,213312,342344)
dt<-data.frame(Town,Latitude,Longitude,pop)

所以我正在寻找一种方法将这两个数据集合并或组合成一个数据集,然后像这样:

map <- ggplot() + geom_polygon(data = Vic, aes(x = long, y = lat, group = group), colour = "black", fill = pop)


map

【问题讨论】:

    标签: r dictionary


    【解决方案1】:

    使用dplyr 并对dt 数据框进行以下更改,以使您的纬度和经度为数字。

    Town<-c("WATSONIA","NORTH MELBOURNE","MOONEE PONDS")
    Latitude<-c(-37.71610,-37.80040,-37.76010)
    Longitude<-c(145.0804,144.9544,144.9228)
    pop<-c(1232131,213312,342344)
    dt<-data.frame(Town,Latitude,Longitude,pop)
    
    Vic = dt%>%
      full_join(dtshp, by = c("Latitude" = "lat", "Longitude" = "long"))
    

    您必须决定是要使用full_joinleft_join 还是right_join

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-21
      • 1970-01-01
      • 2013-04-05
      • 1970-01-01
      • 1970-01-01
      • 2015-01-25
      • 1970-01-01
      • 2019-09-27
      相关资源
      最近更新 更多