【发布时间】:2013-11-01 15:16:39
【问题描述】:
我对 R 很陌生,我正在尝试获取一个文件,该文件又是一个源文件。所以我有一个文件,我们称之为mother.R,其中包含一个源调用:
source ("grandmother.R")
mother.R 和祖母.R 在同一个目录中。
我现在想获取mother.R:
source ("C:/Users/whatever/R/mother.R", chdir=T)
我的假设是chdir=T 会导致在C:/Users/whatever/R/ 下查找源中的源,但是在像这样采购时它没有找到祖母.R。我误会chdir了吗?有没有办法做到这一点而不必在mother.R中使用绝对路径?
【问题讨论】:
-
目前还不清楚你真正想要做什么,但我相信
chdir=T只会在mother.R中的代码运行时影响工作目录,而不是之后。但总的来说,没有充分的理由在函数或脚本中使用source。如果您能解释您的目标是什么,我们可以建议一种更有效的方法。 -
@CarlWitthoft 我很惊讶你说没有充分的理由使用
source。有没有更好的方法将代码拆分成多个文件? -
@Matthew 为什么要将一起运行的代码拆分为单独的文件?但也许更好的问题是“OP 文件中的内容是什么?” .通常你应该构建一个 package 以便所有需要的函数都在同一个命名空间中。从宏(脚本)运行代码是不好的做法。