R语言 创建由粘贴循环产生的多个对象(list.files)

3htmauhk  于 2023-07-31  发布在  其他
关注(0)|答案(1)|浏览(111)

我有多个文件夹,如"results/[model_name_here]/rasters/",我试图创建多个对象,从list.files的循环产生。举例来说:

model_a <- list.files("results/rf/rasters", pattern = "tif$", full.names = TRUE)

字符串
我尝试使用for循环,例如

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)
  
}


但这并不能正常工作。我该如何继续?我不介意使用sapply或其他类型的函数。在我的例子中,这个想法只是创建八个对象,每个对象在模型中被称为i

zfycwa2u

zfycwa2u1#

你想首先初始化结果向量(它是一个列表),然后在R中我们通常使用索引。试试这个:

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)
}

字符串

相关问题