Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R-重命名空间对象的ID名称_R_Polygon_Spatial - Fatal编程技术网

R-重命名空间对象的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

我的目标是更改空间多边形对象的ID名称。我知道如何访问ID名称,但我坚持要重命名它们

下面是一个示例(它是一个空间多边形数据帧,但在我的“真实”案例中,它是一个空间多边形,因此在多边形和数据帧之间没有必要的链接):

库(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”
@Nate
wrld\u siml
maptools
包中。很抱歉忘记了
maptools
,我再次更正了帖子。非常感谢。我正在清理一个乱七八糟的PolygondaFrame,这对我有点帮助。我同意-你的方法很有效。为了概括起见,我建议将最后一部分改为…as.character(1:length(mymap.sp)),而不是硬编码。
mymap.sp <- sp::spChFIDs(mymap.sp, as.character(1:4))