如何在列表中保存 100 个 SpatialLines 对象?

How to save 100 SpatialLines objects in the list?

我需要在列表中保存 100 个 SpatialLines 对象 xySpatialLines。下面给出的代码提供了一个错误:

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
}

初始化 xySpatialLines 不是作为 NULL 而是作为列表,例如通过

xySpatialLines <- list()

或更好,预先分配您需要的 space 以避免增量增长:

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

然后执行脚本的其余部分。