列表元素的名称而不改变它们的类型
Names for the elements of list without change the type of them
我确定这是一个基本问题,但我找不到正确的方法。我有一个 SpatialPolygonsDataFrames 列表。我希望列表中的每个元素都具有其 id.I 尝试做的名称
for (i in lenght(mylist)){
mylist[i]=paste(mylist[[i]]@data$id)
}
#mylist is my list of SpatialPolygonsDataFrames
但在此之后我有一个字符列表(ID)而不是一个 SpatialPolygonsDataFrames 列表。如何将我的元素保留为 SpatialPolygonsDataFrames 并使用它们的 ID 命名?
使用您的代码,您将覆盖列表的内容,而不是列表的名称,实际上您的列表变成了 ID 列表(转换为字符,因为列表的名称只能形成按字符串)。
如果你想编辑一个列表的名字你可以使用函数names(mylist)
,所以你可以这样尝试:
for (i in 1:length(mylist)) { #for each element of your list
names(mylist)[i]=mylist[[i]]@data$id #edit the names vector at position i
}
此外,您不需要使用 paste
功能:您只有一个要用作名称的 ID,不需要粘贴多个元素。
我确定这是一个基本问题,但我找不到正确的方法。我有一个 SpatialPolygonsDataFrames 列表。我希望列表中的每个元素都具有其 id.I 尝试做的名称
for (i in lenght(mylist)){
mylist[i]=paste(mylist[[i]]@data$id)
}
#mylist is my list of SpatialPolygonsDataFrames
但在此之后我有一个字符列表(ID)而不是一个 SpatialPolygonsDataFrames 列表。如何将我的元素保留为 SpatialPolygonsDataFrames 并使用它们的 ID 命名?
使用您的代码,您将覆盖列表的内容,而不是列表的名称,实际上您的列表变成了 ID 列表(转换为字符,因为列表的名称只能形成按字符串)。
如果你想编辑一个列表的名字你可以使用函数names(mylist)
,所以你可以这样尝试:
for (i in 1:length(mylist)) { #for each element of your list
names(mylist)[i]=mylist[[i]]@data$id #edit the names vector at position i
}
此外,您不需要使用 paste
功能:您只有一个要用作名称的 ID,不需要粘贴多个元素。