SpatialPolygonsDataFrame을 데이터와 병합하려고합니다. 일치하는 변수가 있습니다. data.frame은 길이 방향이므로 ISO (즉, 남아프리카 공화국 (ISO : ZAF)에 2002, 2007 및 2013 년 행이 있음)마다 3 개의 항목이 있습니다. taRifx.geo
과 sp
을 사용해 보았지만 오류가 발생했습니다.SpatialPolygonsDataFrame을 데이터 집합과 병합 할 때의 오류
여기에 taRifx.geo
시도에 대한 코드와 오류가 있습니다. 이 패키지에 대한 merge
문서가 끔찍하기 때문에 이것이 옳다는 것을 확신하지는 않습니다.
elephCountries <- taRifx.geo::merge(SPDF=afCountries, df=elephMapData, by=ISO_A3)
Error in as.data.frame(x) : argument "x" is missing, with no default
위의 오류와 혼란은 어디에도 merge
설명서는이 x
인수를 요청하지 않는다는 것입니다. SPDF
및 df
을 묻습니다. 그게 전부 야.
그리고 sp
시도에 대한 코드와 오류는 다음과 같습니다. 여기에 문서가 더 좋지만, 오류에 대한 설명을 어디에서나 찾을 수 없었습니다.
elephCountries <- sp::merge(x=afCountries, y=elephMapData, by="ISO_A3", duplicateGeoms=TRUE)
Error: nrowBefore == nrowAfter is not TRUE
나는 이것이 무엇을 의미하는지에 대한 모든 것을 검색하고 그것을 알아낼 수없는 생각했다. 솔직히 두 패키지를 병합하는 데 사용하는 패키지가 마음에 들지 않아 작동하도록하고 싶습니다. 어떤 도움을 주시면 감사하겠습니다. 감사!
편집 : 다음은 병합하려는 파일입니다. 이 코끼리의 불법 살해에 대한 프로젝트이기 때문에
나는 단지 아프리카 국가를 부분 집합하고있다. 그래서 여기에 코드입니다 : 내가 위에서 말했듯이countries <- readOGR("Data/geo-countries-master/data/countries.geojson", "OGRGeoJSON")
afCountries <- subset(countries, countries$ISO_A3 %in% c(
"AGO", "BDA", "BEN","BWA","BFA","CMR","CAF","TCD","COG","CIV","COD", "COM",
"DJA", "DZA", "EGY", "ERI", "ETH", "GAB", "GHA", "GIN", "GMB", "GNB", "GNQ", "KEN",
"LSO", "LBR", "LBY", "MDG", "MRT", "MUS", "MAR", "MWI", "MLI", "SDN", "SSD",
"MOZ", "NAM", "NER", "NGA", "RWA", "SEN", "SHN", "SLE", "STP", "SOM", "SWZ", "ZAF", "TZA",
"TGO", "TUN", "UGA", "ZAF", "ZMB", "ZWE"))
elephMapData <- read.xlsx("Data/elephByCountry_master.xlsx", sheetName = "Sheet1")
elephCountries <- sp::merge(afCountries, elephMapData, by.x='ISO_A3', by.y='ISO3', duplicateGeoms=TRUE)
, 나는 sp
패키지와 taRifx.geo
패키지를 모두 병합 시도하고 내가 가진 동일한 오류가있어 모두 (즉, Error: nrowBefore == nrowAfter is not TRUE
). 나는 sp::merge
코드를 살펴 봤고 각 파일의 행 수가 일치해야하는 것처럼 보입니다. 그러나 전화가 duplicateGeoms
인 경우에는 문제가되지 않습니다. 여기에 help
그것에 대해 말씀입니다 :이 작업을 수행하는
duplicateGeoms
logical; if TRUE geometries in x are duplicated if there are multiple matches between records in x and y
? 다각형에 속성 데이터를 추가하려고합니까? 아니면 단순히 다각형을 더 추가하려고합니까? 공간 데이터와 병합하는 것은 좋은 생각이 아닙니다. rgeos, raster, sp, spatstat, maptools와 같은 실제 공간 패키지의 함수를 사용해야합니다. – Tbar
셰이프 파일과 데이터를 게시 할 수 있습니까? 실제 데이터로 병합을보다 쉽게 보여줄 수 있습니다. – Phil
. @ Tbar, 감사합니다. 예, 속성 데이터를 추가하여 데이터 및지도를 '리플릿'과 함께 사용할 수있게하려고합니다. 또한, 나는 실제로'sp :: merge (...) '와 같은 코드에서 알 수 있듯이 공간 패키지에서 병합 함수를 사용하고 있습니다. @Phil, Github에 내 데이터 및 GEOJSON 파일에 대한 링크를 게시했습니다. – ldlpdx