2014-02-15 36 views
0

这里是对R代码文件(functions.R)所示:如何从外部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

我知道'源()'工作,但我不想假设我知道在该文件中定义的函数。我想直接介绍在外部R文件中定义的函数列表,而不知道该文件中定义了哪些函数。另一种方法是在该文件中编写'list(fun1 = function(a,b,c){...},...)',我可以直接调用'source(...)'来加载该文件。但这不是我问的。 –

+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)