我想返回我在函数中定义的所有函数。
我知道 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/