简化了在r中创建多个世界光栅



我可以使用循环来简化它吗?我需要制作50多个,目前我正在手动制作(例如,r、r1、r2、r3、r4…(

有没有一种方法可以在一个更简单的代码中完成所有50项?

r   <- raster(extent(-180, 180, -90, 90), ncols = 150, nrows = 80)
r1  <- raster(extent(-180, 180, -90, 90), ncols = 150, nrows = 80)
r2  <- raster(extent(-180, 180, -90, 90), ncols = 150, nrows = 80)

您可以将函数assign映射到序列上:

library(raster)
library(purrr)
my_raster <- raster(extent(-180, 180, -90, 90), ncols = 150, nrows = 80)
seq(50) %>% 
walk(~ assign(x = paste0("r", .x), my_raster, envir = globalenv()))

请记住,这会把你的全球环境搞得一团糟。将光栅分组为一个list:要干净得多

my_rasters <-
seq(50) %>%
map(~ paste0("my_raster_", .x)) %>%
set_names() %>%
map(~my_raster)
# access one raster
my_rasters$my_raster_23