如何防止source()R代码被多次包含?

如何防止source()R代码被多次包含?,r,include-guards,R,Include Guards,我有很多R源文件。例如,在A.R和C.R文件中,B.R通过source()加载。现在我想使用A.R和C.R中的函数,如何避免重复使用B.R?C/C++中是否有类似的include-guard机制 如果B.R中已经有一个函数或数据集,并且具有相当独特的名称,那么您可以将其用作保护。否则,只需定义一个: B.R 答案几乎肯定是将B.R放入一个包中,然后使用library()函数加载它。好吧,把它变成一个包太过繁琐了。没有更简单的方法?如果没有明显的方法,我实际上正在考虑一个类似的解决方案: B_is

我有很多R源文件。例如,在
A.R
C.R
文件中,
B.R
通过
source()
加载。现在我想使用
A.R
C.R
中的函数,如何避免重复使用
B.R
?C/C++中是否有类似的include-guard机制

如果B.R中已经有一个函数或数据集,并且具有相当独特的名称,那么您可以将其用作保护。否则,只需定义一个:

B.R


答案几乎肯定是将
B.R
放入一个包中,然后使用
library()
函数加载它。好吧,把它变成一个包太过繁琐了。没有更简单的方法?如果没有明显的方法,我实际上正在考虑一个类似的解决方案:
B_is_loaded <- TRUE
# The normal B stuff
if(!exists("B_is_loaded")) source("B.R")
# Now you can call the stuff in B