Как не допустить источника() код Р быть включен более чем один раз?


У меня есть много исходных файлов R. Например, в обоих файлах A.R и C.R B.R загружается через source(). Теперь я хотел бы использовать функции как в A.R, так и в C.R, Как я могу избежать повторного поиска B.R? Есть ли какие-либо механизмы защиты include, аналогичные в C / C++?

1 2

1 ответ:

Если у 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