Скажите util.R
производит функцию foo()
.Вы можете проверить, доступна ли эта функция в глобальной среде, и получить исходный текст сценария, если это не так:
if(identical(length(ls(pattern = "^foo$")), 0))
source("util.R")
Это найдет что-нибудь с именем foo
.Если вы хотите найти функцию, тогда (как упомянуто @Andrie) exists()
полезно, но нужно точно сказать, какой тип объекта искать, например,
if(exists("foo", mode = "function"))
source("util.R")
Здесь exists()
в действии:
> exists("foo", mode = "function")
[1] FALSE
> foo <- function(x) x
> exists("foo", mode = "function")
[1] TRUE
> rm(foo)
> foo <- 1:10
> exists("foo", mode = "function")
[1] FALSE