Bucles III

R
R Tips
bucles
Autor/a

David Mateos

Fecha de publicación

11 de octubre de 2023

Buenas, vuelvo a la carga con lo de que “en R no hacen tanta falta los bucles”

Un código que acabo de ver por ahí:

#Grd es un SpatRast de varias bandas

outdir<-"ruta/"
output<-paste0(outdir,names(Grd),".tif")

for (i in 1:length(names(Grd))) {
  A<-Grd[[i]]
  
  terra::writeRaster(A,output[i],overwrite=TRUE)
}

en este caso, el bucle no aporta nada que no haga directamente writeRaster. Se podría quedar así:

#Grd es un SpatRast de varias bandas

outdir<-"ruta/"
output<-paste0(outdir,names(Grd),".tif")

terra::writeRaster(Grd, output, overwrite=TRUE)

Queda un código más rápido de escribir, más fácil de leer y con el que es más dificil cometer algún error tonto.

Además, aunque no lo he probado, me imagino que será también más rápido de ejecutar, porque en el primer caso estamos haciendo 10 asignaciones + 10 llamadas a la función, mientras que el segundo solo hay una llamada a la función.