r - 获取所有源函数

标签 r

在 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/

相关文章:

mysql - RODBC 更改 group_concat 的限制

r - 如何使用在hclust中使用的变量创建向量

r - 如何在 R 或 MATLAB 中为散点图创建带阴影的误差条 "box"

R- 折叠行并对列中的值求和

r - 通过其内存地址获取对象

r - 在 R 中,将数据框中的向量值列拆分为多列

r - 如何修复错误 : Error in importIntoEnv(pkgenv, exports, nsenv, exports), cannot add bindings to a locked environment devtools-roxygen2?

r - Sweave 中的自定义图形设备

R glmnet 系列 = 0-1 以外的二项式预测值

r - 如何返回列的名称而不是它包含的数据?