首页 > 解决方案 > 如何防止R在找不到要打开的文件时停止?

问题描述

我的 R 代码试图在 for 循环中打开一个 RDS 文件,如下所示:

for(i in 1:run_loops){
    source("./scripts/load_data.R")
    model <- readRDS(file=paste(model_directory,"/",modelname,".Rds", sep="")) #STOPS-HERE!!!
    source("./scripts/prediction.R")
  }

R 在没有模型文件时停止。
如何让它移动到下一个迭代而不是停止?

每次获取 load_data.R 时,PS modelname 变量都会更改。

标签: r

解决方案


这应该可以解决问题:

for(i in 1:run_loops) {
  tryCatch(
    expr = {
      source("./scripts/load_data.R")
      model <-
        readRDS(file = paste(model_directory, "/", modelname, ".Rds", sep = "")) #STOPS-HERE!!!
      source("./scripts/prediction.R")
    },
    error = function(e) {
      print(paste0(i, ' not done'))
    }
  )
}

推荐阅读