使用R中的循环从列表中写入多个.shp

使用R中的循环从列表中写入多个.shp,r,list,for-loop,export,R,List,For Loop,Export,我有一个大约2000个SpatialPolygonDataFrames的列表(mylist),我想将这些.shps导出到一个文件夹(我的目录)中。我试图使用循环来访问列表,但它似乎不起作用。我该怎么做 for (i in 1:length(mylist)){ writeOGR(mfiles,i,"mfiles",i,layer = "mfiles",i, driver="ESRI Shapefile",overwrite_layer = T) } Error: is.logical(

我有一个大约2000个SpatialPolygonDataFrames的列表(
mylist
),我想将这些.shps导出到一个文件夹(我的目录)中。我试图使用循环来访问列表,但它似乎不起作用。我该怎么做

for (i in 1:length(mylist)){
    writeOGR(mfiles,i,"mfiles",i,layer = "mfiles",i, driver="ESRI Shapefile",overwrite_layer = T)
}


Error: is.logical(verbose) is not TRUE

谢谢

这里是一个具有空间点数据帧列表的示例,同样适用于您的空间点数据帧列表

第一次加载sp和rgdal:

library(sp)
library(rgdal)
然后创建两个虚拟空间点数据帧:

coords <- cbind(c(1, 2, 3), c(1, 2, 3))
data <- data.frame(name = c("foo", "bar", "blah"))
ob1 = SpatialPointsDataFrame(coords, data)
coords <- cbind(c(4, 5, 6), c(4, 5, 6))
data <- data.frame(name = c("cookie", "cheese", "apple"))
ob2 = SpatialPointsDataFrame(coords, data)

如果要将列表本身提交给writeOGR函数,则应使用双方括号为循环中的列表编制索引:[[i]]

这里是一个具有空间点数据帧列表的示例,同样适用于空间点数据帧列表

第一次加载sp和rgdal:

library(sp)
library(rgdal)
然后创建两个虚拟空间点数据帧:

coords <- cbind(c(1, 2, 3), c(1, 2, 3))
data <- data.frame(name = c("foo", "bar", "blah"))
ob1 = SpatialPointsDataFrame(coords, data)
coords <- cbind(c(4, 5, 6), c(4, 5, 6))
data <- data.frame(name = c("cookie", "cheese", "apple"))
ob2 = SpatialPointsDataFrame(coords, data)

您正在将列表本身提交给writeOGR函数。您应该使用双方括号为循环中的列表编制索引:[[i]]

感谢@trosendal通知索引。感谢@trosendal通知索引。