How to save 100 SpatialLines objects in the list?

那年仲夏 提交于 2019-12-22 11:37:24

问题


I need to save 100 SpatialLines objects in the list xySpatialLines. The below given code provides an error:

Error in xySpatialLines[i] = spl : invalid type/length (S4/0) in vector allocation

library(sp)
xySpatialLines <- NULL

for(i in 1:100)
{
 x <- c(i,5,4,8)
 y <- c(1,3,4,i)
 xy <- cbind(x,y)
 xy.sp = sp::SpatialPoints(xy)
 spl <- SpatialLines(list(Lines(Line(xy.sp), ID=i)))
 xySpatialLines[i] = spl
}

回答1:


Initialize xySpatialLines not as NULL but as a list, e.g. by

xySpatialLines <- list()

or better, pre-allocate the space you need to avoid incremental growth:

xySpatialLines <- vector(mode = "list", length = 100)

and then execute the rest of your script.



来源:https://stackoverflow.com/questions/28026204/how-to-save-100-spatiallines-objects-in-the-list

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!