问题
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