R-重命名空间对象的ID名称
我的目标是更改空间多边形对象的ID名称。我知道如何访问ID名称,但我坚持要重命名它们 下面是一个示例(它是一个空间多边形数据帧,但在我的“真实”案例中,它是一个空间多边形,因此在多边形和数据帧之间没有必要的链接):R-重命名空间对象的ID名称,r,polygon,spatial,R,Polygon,Spatial,我的目标是更改空间多边形对象的ID名称。我知道如何访问ID名称,但我坚持要重命名它们 下面是一个示例(它是一个空间多边形数据帧,但在我的“真实”案例中,它是一个空间多边形,因此在多边形和数据帧之间没有必要的链接): 库(rgdal) 图书馆(rgeos) 图书馆(sp) 图书馆(地图工具) 数据(wrld_siml) mymap.sp如果性能不是问题,您可以在for循环中执行此操作: new_IDs = paste0("ID", 1:4) for (i in 1:length(slot(myma
库(rgdal)
图书馆(rgeos)
图书馆(sp)
图书馆(地图工具)
数据(wrld_siml)
mymap.sp如果性能不是问题,您可以在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]
}
我建议使用sp::spChFIDs
函数,而不是自己循环。具体来说,您可以如下更改ID:
mymap.sp <- sp::spChFIDs(mymap.sp, as.character(1:4))
mymap.sp您想将名称更改为什么?我已经完成了回答您问题的帖子。警告消息:在数据中(wrld\u siml):未找到数据集“wrld\u siml”
@Natewrld\u siml
在maptools
包中。很抱歉忘记了maptools
,我再次更正了帖子。非常感谢。我正在清理一个乱七八糟的PolygondaFrame,这对我有点帮助。我同意-你的方法很有效。为了概括起见,我建议将最后一部分改为…as.character(1:length(mymap.sp)),而不是硬编码。
mymap.sp <- sp::spChFIDs(mymap.sp, as.character(1:4))