R自我识别当前脚本目录

时间:2016-02-03 17:11:09

标签: r directory

我知道这已被问过好几次,但我仍然无法让它正常工作。我有一个主脚本通过source()调用其他脚本。我正在编写目前可能被多个团队使用的代码,所以我想将main和所有脚本保存到一个文件夹中,该文件夹可以从任何文件位置运行。为此,Main.R需要能够自我识别它自己的目录。我没有成功地让它正常运行,我希望有人能够帮助我。

Main.R

#Main script
source("Hello.R")

Hello.R

#side script to be run
print("Hello World")

问题在于我无法运行" Hello.R"除非我将目录设置为包含所有脚本的文件夹。

1 个答案:

答案 0 :(得分:1)

如果用户可以找到并运行Main.R,那么他们可以找到并运行Wrapper.R(他们已经完成了识别你想要使用的路径的工作)。因此,您可以使用包装器脚本来运行Main.R(对于非R用户,file.choose非常直观):

Wrapper.R

id

Main.R

var barChart = function(data, chartId, colorOnBar){

  if (!this.timesCalled) this.timesCalled = 0;
  this.timesCalled += 1;

  ...

  var gradient = svg.append("svg:defs")
    .append("svg:linearGradient")
    .attr("id", "gradient_" + this.timesCalled)

 ...

 .style("fill", "url(#gradient_" + this.timesCalled + ")")

Hello.R

main = file.choose()
main.dir=dirname(main)
source(main,local=TRUE)