这是一个R代码文件(functions.R
),如下所示:
fun1 <- function(a,b,c) {
...
}
fun2 <- function(a,b,c) {
...
}
fun3 <- function(a,b,c) {
...
}
在另一个代码文件中,如何创建一个包含functions.R
中定义的函数的列表,列表成员名称是相应的函数名?
就像:
list(fun1=function(a,b,c){...},fun2=function(a,b,c){...},fun3=function(a,b,c){...})
我知道source()
最终会起作用,但在这里我不想假设我知道外部文件中定义的函数的名称。我想直接介绍外部R文件中定义的函数列表,而不知道该文件中定义了哪些函数。
答案 0 :(得分:3)
这是一种方法:
# create new environment
e1 <- new.env()
# source file
sys.source("filename.R", envir = e1)
# find functions
fnames <- ls.str(e1, "function")
# get functions
setNames(mget(fnames, e1), fnames)