R语言here()函数无法定位正确项目目录问题问询
here()函数路径异常排查解决方案
核心原因说明
here包的核心逻辑是加载时自动识别项目根目录,而非动态接收绝对路径修改根目录,你此前的调用方式存在逻辑错误
分步排查操作
- 第一步:先确认当前here识别的根目录和判定依据,运行命令:
here::dr_here()
该命令会输出根目录定位规则,你当前得到C:/First/Documents路径的核心原因是here未找到项目根标识文件,默认调用了系统R_USER环境变量对应的目录,可运行以下命令验证:Sys.getenv("R_USER") - 第二步:手动指定你需要的项目根目录(你场景下的根目录为
C:/First/Second/Third/Analysis,该目录下包含Scripts、Data两个子目录),有三种可选方案:- 永久生效方案:在
C:/First/Second/Third/Analysis目录下新建空文件,命名为.here,后续here加载时会自动识别该目录为根 - RStudio用户方案:在该目录下新建.Rproj项目文件,每次打开该项目时
here会自动识别根目录 - 临时指定方案:运行手动设置根目录的专用命令:
here::set_here("C:/First/Second/Third/Analysis")
- 永久生效方案:在
- 第三步:正确调用
here()拼接路径
根目录设置完成后,仅需要传入根目录下的相对路径片段即可,不需要传入前缀绝对路径:- 访问脚本目录下的文件:
here("Scripts", "你的脚本名.R") - 访问数据目录下的文件:
here("Data", "你的数据文件.csv")
- 访问脚本目录下的文件:
- 第四步:目录切换操作
如果需要在脚本中切换工作目录,直接结合here()的输出调用setwd()即可:- 切换到数据目录:
setwd(here("Data")) - 切换到脚本目录:
setwd(here("Scripts"))
- 切换到数据目录:
内容的提问来源于stack exchange,提问作者ClaireR
相关产品推荐
相关产品推荐

