我们的团队使用R脚本在git存储库中,这些存储库在多个人之间共享,并跨Mac、Windows(有时还有Linux)计算机。这往往会导致脚本顶部出现一堆非常烦人的行,看起来像这样:
#path <- 'C:/data-work/project-a/data'
#path <- 'D:/my-stuff/project-a/data'
path = "~/projects/project-a/data"
#path = 'N:/work-projects/project-a/data'
#path <- "/work/project-a/data"
setwd(path)
运行脚本时,我们必须注释/取消注释正确的路径变量,否则脚本将无法运行。这很烦人、不整洁,并且在提交历史记录中也有点混乱。
过去,我通过使用shell脚本相对于脚本位置设置目录并完全跳过setwd(然后使用
./run-scripts.sh
代替Rscript process.R
)来解决这个问题,但是由于我们这里有Windows用户,那样做行不通。是否有更好的方法来简化R中这些混乱的setwd()
模板?(旁注:在Python中,我通过使用path库获取脚本文件本身的位置,然后从中构建相对路径来解决此问题。但是,R似乎没有办法获取正在运行的脚本文件的位置?)
here
真是太棒了。使用您的目录,您可以在根目录中拥有一个项目或.here
文件。然后,要获取脚本的目录,您只需执行here('scripts', 'analysis.R')
即可完成。 - Colehere
库。我要使用它。 - futuraprime