Как объединить фрейм данных с пространственным фреймом данных при получении ошибок как left_join, так и merge? - PullRequest
0 голосов
/ 13 мая 2019

Я пытаюсь объединить фрейм данных, содержащий данные о посещениях больницы ("Hospital_Visits_df"), с шейп-файлом / пространственным * фреймом данных, содержащим многоугольники ZIP / ZCTA и координаты ("shp", загруженные из Бюро переписи населения ).

Оба кадра данных содержат соответствующие столбцы, 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), он больше не определяет его как кадр пространственных данных.

Я хочу объединить данные о посещении больницы с пространственными данными, чтобы я мог отобразить их вместе с листовкой, но на первом этапе меня сбивают с толку.

Я ценю любую помощь, оказанную вамможете дать мне.Большое спасибо !!

Ответы [ 2 ]

2 голосов
/ 13 мая 2019
library(rgdal)
mydf   <- read.csv("myCsv.csv")
myspdf <- readOGR("myShapefile.shp")

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

Ссылка

1 голос
/ 13 мая 2019

Я думаю, вам нужно использовать left_join() непосредственно для вашего sf-объекта, а не для части @data вашего sf-объекта.

library(sf)

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

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

result <- shp %>% 
  left_join(Hospital_Visits_df)
...