如何从外部R代码文件加载函数列表?

时间:2014-02-15 13:26:56

标签: r

这是一个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文件中定义的函数列表,而不知道该文件中定义了哪些函数。

1 个答案:

答案 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)