I have multiple folders such as "results/[model_name_here]/rasters/"
and I'm trying to create multiple objects resulting from a loop of list.files
. For example:
model_a <- list.files("results/rf/rasters", pattern = "tif$", full.names = TRUE)
I was trying to go for a for
loop such as
models <- c("rf", "brt", "gam", "glm",
"mars", "bart", "svm")
for (i in models) {
i <- list.files(paste0("results/", i, "/rasters/"),
pattern = "tif$",
full.names = TRUE)
}
But that doesn't work properly. How can I proceed? I don't mind using sapply
or other type of function. The idea is simply to create, in my case, eight objects, each one called i
in models
CodePudding user response:
You want to initialize the result vector (which is a list) first, then in R we usually use the indices. Try this:
models <- c("rf", "brt", "gam", "glm", "mars", "bart", "svm")
r <- vector('list', length(models))
for (i in seq_along(models)) {
r[[i]] <- list.files(paste0("results/", models[i], "/rasters/"),
pattern="tif$", full.names=TRUE)
}