我知道这已被问过好几次,但我仍然无法让它正常工作。我有一个主脚本通过source()
调用其他脚本。我正在编写目前可能被多个团队使用的代码,所以我想将main和所有脚本保存到一个文件夹中,该文件夹可以从任何文件位置运行。为此,Main.R需要能够自我识别它自己的目录。我没有成功地让它正常运行,我希望有人能够帮助我。
Main.R
#Main script
source("Hello.R")
Hello.R
#side script to be run
print("Hello World")
问题在于我无法运行" Hello.R"除非我将目录设置为包含所有脚本的文件夹。
答案 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)