r - 如何返回函数中定义的所有函数?

标签 r function environment-variables return-value

我想返回我在函数中定义的所有函数。

我知道 ls() 可用于返回函数名称,但我需要返回原始函数体中定义的函数列表。

例如,我的函数可能看起来像

primaryFunction<-function(){
    a<-function(){return (2)} 
    b<-function(){return (3)} 
    return(?)} 

其中 return(?) 应该返回包含函数 a、b 的列表。

最佳答案

通常,为了明确起见,我会单独列出它们:

primary_function = function () {
    a = function () 2
    b = function () 3
    list(a = a, b = b)
}

但是如果有很多你可以缩写:

primary_function = function () {
    a = function () 2
    b = function () 3
    as.list(environment())
}

(您也可以返回环境本身,而不是将其复制到列表中。)

请注意,这将返回所有本地符号。如果您有非函数符号并且只想返回函数,请改为

primary_function = function () {
    a = function () 2
    b = function () 3
    mget(lsf.str())
}

另请注意,您的代码包含错误,因为在 R 中 return 不是语句,而是一个函数调用,它会中止当前函数的执行。因此,您需要用括号编写它(例如 return(2),而不是 return 2),并且它们的使用在这里是多余的:R 总是返回最后一个值函数的执行。这就是为什么我省略了它们。我仅使用 return 来表示提前退出。

关于r - 如何返回函数中定义的所有函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56644726/

相关文章:

api - 如何在 Shopify/Liquid 中创建/使用 API key 的环境变量?

r - 避免在运行时在 HDP 上修改 mapred.child.env,以便 R 可以使用 RHive 建立与 hiveserver2 的连接

引用对象元素

R 将列转换为 NA 值 - 为什么?

c++ - 在 C++ 中将 float 数组的参数填充为 float*

reactjs - 如何在运行时通过docker-compose.yaml文件传递的React应用中读取环境变量?

qt - Qt Creator的工程文件(.pro)中如何修改PATH变量

r - 使用 nplot/rCharts 制作 NVD3 scatterChart 时访问点的形状属性

python - 迭代函数参数并在 python 中保留排序顺序

python - 如何在 python 中使用 (var1)(var2) 表示法将函数应用于值