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

时间:2012-01-17 20:07:40

标签: r include-guards

我有很多R源文件。例如,在A.RC.R个文件中,B.R都是通过source()加载的。现在我想使用A.RC.R中的功能,如何避免重复采购B.R?在C / C ++中是否有类似的保护机制?

1 个答案:

答案 0 :(得分:7)

如果B.R已经在其中设置了一个具有相当唯一名称的函数或数据,则可以将其用作警卫。否则,只需定义一个:

B.R

B_is_loaded <- TRUE
# The normal B stuff

A.R:

if(!exists("B_is_loaded")) source("B.R")
# Now you can call the stuff in B