从矩阵列表中创建栅格

时间:2015-07-06 18:50:54

标签: r loops for-loop matrix raster

我想从以下列表中创建三个栅格。

y <- matrix(1:300,100,3)
n <- c(1,2,3)
rep = 200

valuematrix <- vector("list",ncol(y))

for (i in 1:ncol(y)) {
        newmatrix <- replicate(rep,y[,i])
        valuematrix[[i]] <- newmatrix
}

现在我有一个包含3个矩阵的列表,我想创建三个名称为raster1,raster2,raster3的栅格(虽然我做得不对)

library(sp)
library(raster)    
for (i in 1:length(valuematrix)) {
            newraster <- raster(valuematrix[[i]])
            valum[[paste0("matrix", i)]] <- newraster
    }

帮助如何更改最后一段代码将非常感激。

1 个答案:

答案 0 :(得分:1)

我们可以在“列表”中保留创建raster,如果需要,我们可以使用setNames

命名列表元素
 lst <- setNames(lapply(valuematrix, raster), paste0('raster',1:3))

对于stack和其他操作,可以使用

 stack(lst)