Мы вызываем source
с local=TRUE
внутри новой функции и возвращаем только необходимую функцию:
source1 <- function(path,fun){
source(path, local= TRUE)
get(fun)
}
from x import y as z
будет записано:
z <- source1(x,y) # where y is a string
Пример:
# create 'test.R' file in working directory
write("test <- function(a,b) a + b
test2 <- function(a,b) a - b",
"test.R")
new_fun <- source1("test.R","test2")
new_fun
# function(a,b) a - b
# <environment: 0x0000000014873f08>
test
# Error: object 'test' not found
test2
# Error: object 'test2' not found
# clean up
unlink("test.R")