复现气候研究R代码时prism包报'exdir'不存在错误求助
解决PRISM包解压报错:
'exdir' does not exist 问题原因
你调用get_prism_dailys时设置了keepZip=FALSE,这个参数会触发包自动下载并解压PRISM数据,但prism_set_dl_dir指定的目标目录(paste0(dir$prism,"/daily/",var))如果不存在,PRISM包不会自动创建该目录,导致内部调用的解压函数找不到目标路径而报错。
修复方案
在设置PRISM下载目录前,手动创建对应的多级目录,使用dir.create()并添加recursive=TRUE参数确保父目录不存在时也能逐层创建:
修改后的代码:
lapply(c("tmin","tmax"), function(var){ print(var) # 提前创建目标目录,recursive=TRUE支持多级目录创建 target_dir <- paste0(dir$prism,"/daily/",var) dir.create(target_dir, recursive = TRUE, showWarnings = FALSE) # 设置PRISM下载目录 prism_set_dl_dir(target_dir) # 下载并解压文件 get_prism_dailys(type = var, minDate = "1981-01-01", maxDate = "2020-12-31", keepZip=FALSE) })
补充说明
showWarnings=FALSE用于避免目录已存在时弹出警告,不影响核心功能;- 请确认
dir$prism是一个已存在的有效路径,否则父目录创建失败仍会导致报错。
内容的提问来源于stack exchange,提问作者Homa Taheri
相关产品推荐
相关产品推荐

