【R】複数のオブジェクトを読み込みながら繰り返し処理する方法
変数やベクトル等の一部分を読み込みながら繰り返すfor文はよくありますが,オブジェクトを代入しながら繰り返すこともできます.
複数のデータがあるとし,読み込みます.
# パッケージの読み込み
library(raster)
# 4つのラスタデータの読み込み
ras1_var1 <- raster(path/to/raster1_variable_1.tif)
ras1_var2 <- raster(path/to/raster1_variable_2.tif)
ras2_var1 <- raster(path/to/raster2_variable_1.tif)
ras2_var2 <- raster(path/to/raster2_variable_2.tif)
読み込んだラスタをリストに格納します.
# リスト化
list_ras1 <- list(ras1_var1,ras1_var2)
list_ras2 <- list(ras2_var1,ras2_var2)
リストから総当たりで呼び出し,ラスタ演算を行います.その後,assignを使って,オブジェクト名をつけながら保存します.
for(i in 1:2) {
for(j in 1:2){
# リストから呼び出してラスタ演算
ras_sum <- list_ras1[[i]] + list_ras2[[j]]
# ラスタ演算後のラスタを変数名等を組み合わせたオブジェクトに保存
assign(paste0("sum_raster_", i,"_", j), ras_sum)
}
}