将循环中生成的光栅名称以不同的名称保存在R中
我正在尝试创建5个光栅文件,并使用单独的名称写入每个光栅文件。到目前为止,我已经成功地做到了这一点:将循环中生成的光栅名称以不同的名称保存在R中,r,loops,raster,R,Loops,Raster,我正在尝试创建5个光栅文件,并使用单独的名称写入每个光栅文件。到目前为止,我已经成功地做到了这一点: c=5 for (i in 1:c){ z<-RFsimulate(x=x,y=y,grid=TRUE,model = model,maxGB=4.0) a<-raster(z) projection(a) <- "+proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0" writeRaster(raster(a),file
c=5
for (i in 1:c){
z<-RFsimulate(x=x,y=y,grid=TRUE,model = model,maxGB=4.0)
a<-raster(z)
projection(a) <- "+proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0"
writeRaster(raster(a),filename="raster[i].tif")
}
c=5
(1:c中的i){
z这是一个非常基本的R问题。你可能应该练习一些简单的循环。使用print
语句查看发生了什么。请注意,你创建了对象a
,但没有使用它。“光栅[i]。tif”
是一个字符串,它与迭代器i
没有关系。下面是一个解决方案:
n <- 5
for (i in 1:n){
z <- RFsimulate(x=x,y=y,grid=TRUE,model = model,maxGB=4.0)
a <- raster(z, crs="+proj=longlat +datum=WGS84")
f <- paste0('raster', i, '.tif')
writeRaster(a, filename=f)
}
n这是一个非常基本的R问题。你可能应该练习一些简单的循环。使用print
语句查看发生了什么。请注意,你创建了对象a
,但没有使用它。“光栅[i]。tif”
是一个字符串,它与迭代器i
没有关系。下面是一个解决方案:
n <- 5
for (i in 1:n){
z <- RFsimulate(x=x,y=y,grid=TRUE,model = model,maxGB=4.0)
a <- raster(z, crs="+proj=longlat +datum=WGS84")
f <- paste0('raster', i, '.tif')
writeRaster(a, filename=f)
}
nR没有自动字符串插值。如果要将i
的值放入filename
字符串中,则需要显式替换它。请尝试以下操作:
...
projection(a) <- ...
filename <- gsub("INDEX", i, "raster_INDEX.tif")
writeRaster(raster(z), filename=filename
}
R没有自动字符串插值。如果要将i
的值放入filename
字符串中,则需要显式替换它。请尝试以下操作:
...
projection(a) <- ...
filename <- gsub("INDEX", i, "raster_INDEX.tif")
writeRaster(raster(z), filename=filename
}