【发布时间】:2021-09-19 19:58:15
【问题描述】:
我有一个应该使用 setwd() 更改工作目录的 R 脚本。
我的代码:
setwd(file.path(work_dir, database_dir, study))
我可以在应该执行此行之前暂停我的脚本(使用browser())将代码输入控制台没有问题,但是每当从脚本执行该行时,我都会收到错误框,指出存在“打开文件时出错:系统找不到指定的文件。”在调用 setwd 之前,在我的脚本中,我使用 file.exists(file.path(work_dir, database_dir,study)) 确认该路径存在。我还重新启动了 R studio 并关闭并重新打开了我的所有脚本,以确保这不会导致问题。
还有其他的建议让我试试吗?
【问题讨论】:
-
也许我只是糊涂了,但你为什么要将你的工作目录更改为文件路径?
-
file.path() 函数以独立于平台的方式从组件构造文件的路径。我以前用过很多次都没有问题。
-
如果该目录不存在或者它是一个文件,我会收到错误
cannot change working directory,而不是cannot find,这表明可能 that 行不是错误的线。 (顺便说一句,我一直使用file.path来创建目录路径,我认为函数名可以改为与文件/目录无关,例如make.path或create.path或类似的......但没关系。你可以改为使用dir.exists而不是file.exists,它在逻辑上更符合您的意图,并且如果它确实是一个文件而应该是一个目录,则会出错。) -
我同意我收到“打开文件时出错”错误是非常奇怪的。我不确定还能尝试什么。我什至删除了 file.path 并手动输入了第一个子文件夹的路径,但无济于事。我真正不明白的是为什么该命令在控制台中没有问题,但在脚本中不起作用。