在 R 中,我使用 source()
加载一些功能:
source("functions.R")
是否可以获得此文件中定义的所有函数的列表?作为函数名。 (也许
source()
本身可以以某种方式返回它?)。PS:最后的办法是调用
source()
第二次喜欢 local({ source(); })
然后做ls()
inside 和 filter 函数,但这太复杂了 - 有没有更简单和不那么笨拙的解决方案?
最佳答案
我认为最好的方法是将文件源到临时环境中。查询该环境的所有功能,然后将这些值复制到父环境。
my_source <- function(..., local=NULL) {
tmp <- new.env(parent=parent.frame())
source(..., local = tmp)
funs <- names(tmp)[unlist(eapply(tmp, is.function))]
for(x in names(tmp)) {
assign(x, tmp[[x]], envir = parent.frame())
}
list(functions=funs)
}
my_source("script.R")
关于r - 获取所有源函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58878374/