2017-11-13 5 views
0

내 목표는 SpatialPolygon 객체의 ID 이름을 변경하는 것입니다. ID 이름에 액세스하는 방법을 알고 있지만 이름을 바꾸려합니다. 여기 R - 공간 객체의 ID 이름을 바꿉니다.

은 예입니다 (그것은 SpatialPolygonDataFrame이다 그러나 나의 '진짜'경우는 다각형 및 데이터 프레임 사이에 필요한 링크를없이하며,이 SpatialPolygon있어) :

library(rgdal) 
library(rgeos) 
library(sp) 
library(maptools) 

data(wrld_simpl) 
mymap.sp <- wrld_simpl[which(wrld_simpl$ISO3 == "ATG" | 
          wrld_simpl$ISO3 == "BRA" | 
          wrld_simpl$ISO3 == "FRA" | 
          wrld_simpl$ISO3 == "CIV"), ] 

# access to the ID names 
sapply(slot(mymap.sp, "polygons"), function(x) slot(x, "ID")) 
[1] "ATG" "BRA" "FRA" "CIV" 

은 가정하자 나는이 ID를 대체 할 이름은 "1", "2", "3", "4"로 표시됩니다. 성능이 문제가 아닌 경우

+0

당신이 이름을 변경하기 위해 무엇을 원하는가? – Nate

+0

질문에 답변하기 위해 내 게시물을 완성했습니다. – Kumpelka

+0

'경고 메시지 : 데이터 (wrld_simpl) : 데이터 세트 'wrld_simpl'not found' – Nate

답변

1

, 당신은 for 루프에서이 작업을 수행 할 수 있습니다

new_IDs = paste0("ID", 1:4) 
for (i in 1:length(slot(mymap.sp, "polygons"))){ 
    slot(slot(mymap.sp, "polygons")[[i]], "ID") = new_IDs[i] 
}