【问题标题】:R Self Identify Current Script DirectoryR 自识别当前脚本目录
【发布时间】:2016-05-13 00:38:16
【问题描述】:

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

Main.R

#Main script
source("Hello.R")

你好.R

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

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

【问题讨论】:

  • 您可以创建一个名为“setwd.R”的文件,该文件指定“Hello.R”的正确路径,然后如果您在另一台计算机上工作,您只需更改“setwd.R”中的路径即可。 R"。
  • 但是我不能从 Main.R 调用 setwd.R,除非我有 setwd.R 的路径,它与 Hello.R 相同
  • getwd()怎么样?
  • 不给出当前脚本的目录
  • previously 所述,当您加载 Main.R 时,您应该知道调用它的目录。

标签: r directory


【解决方案1】:

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

Wrapper.R

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

Main.R

source(paste(main.dir,'/Hello.R',sep=""))

你好.R

print('Hello World')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-04-11
    • 1970-01-01
    • 2019-01-13
    • 2023-03-29
    • 1970-01-01
    • 2013-12-03
    • 2014-03-25
    • 1970-01-01
    相关资源
    最近更新 更多