相关疑难解决方法(0)

Rscript:确定执行脚本的路径

我有一个名为的脚本foo.R包含另一个脚本other.R,该脚本位于同一目录中:

#!/usr/bin/env Rscript
message("Hello")
source("other.R")
Run Code Online (Sandbox Code Playgroud)

但我想R发现other.R无论当前的工作目录是什么.

换句话说,foo.R需要知道自己的路径.我怎样才能做到这一点?

r file path rscript r-faq

234
推荐指数
14
解决办法
11万
查看次数

查找当前.R文件的位置

我已经查看了许多与此相似的问题(见帖子末尾),但我没有找到任何实际完成我需要的解决方案.我根据项目在Windows或Fedora上编码,我为使用Windows和几个Linux发行版的人编写代码.

我的部分工作是为自动分析数据和创建图形的人制作R脚本.最常见的是,我只是向他们发送脚本,它将生成图表.这样,如果数据发生变化或扩展,我不需要为它们重新运行脚本(也可以根据需要进行更改).

问题是我不知道如何获得一个R脚本来找出它自己的位置.能够创建如下工作的代码将非常方便:

  1. 用户将脚本保存到包含数据的文件夹,然后运行脚本.
    • 我通常只是将脚本通过电子邮件发送给我正在使用的人.
    • 他们将脚本保存到包含他们想要分析/绘制的数据的文件夹中.
    • 理想情况下,他们只需启动R,加载脚本,然后运行脚本.
  2. 脚本确定自己的位置,然后将其设置为工作目录.
  3. 脚本分析其自己目录中的数据.
  4. 脚本生成图形并将其保存到自己的目录中.

这个问题只涉及第2步.只要我能做到这一点,其他所有事情都会顺利进行.有这样的东西会很高兴:

setwd(FindThisScriptsLocation())
Run Code Online (Sandbox Code Playgroud)

该行:源(...,CHDIR = T)已建议在这里,但它不能被用于一个脚本来引用自身,除非它知道自己的路.

以下是一些相关问题:

r

19
推荐指数
2
解决办法
2万
查看次数

标签 统计

r ×2

file ×1

path ×1

r-faq ×1

rscript ×1