R 设置工作路径为当前文件所在路径

问题:

对于R语言来说,要include另一个文件,需要用到命令source;对于在源文件中的R脚本,要source当前文件所在目录下的其他文件,还需要把R语言解释器的工作路径设置为当前文件所在路径,否则source某个文件就需要使用绝对路径,不利于项目的移植。

解决方案:

通过下方的一块代码片段,就可以把R语言的工作路径设置为文件所在路径

1
2
3
4
frame_files <- lapply(sys.frames(), function(x) x$ofile)
frame_files <- Filter(Negate(is.null), frame_files)
TOPDIR <- dirname(frame_files[[length(frame_files)]])
setwd(TOPDIR)