如何从调用对象中获取函数对象
How can I get the function object from a call object
我正在尝试从调用对象中检索函数对象
在这个例子中
ff = function(x) {gg(x)}
gg = function(y) {uu(y)}
uu = function(z) {browser()}
ff(1)
说我想从 sys.calls()[[1]]
得到函数 ff
我得到了下面的但是我想要 ff
函数对象,我怎样才能得到它
Browse[1]> deparse(sys.calls()[[1]][1])
[1] "ff()"
您可以通过将调用转换为列表并对其第一个成员(即符号 ff
进行子集化)来提取符号。然后你可以 eval
这个符号来显示函数体(或者用它来构建一个新的调用)
Browse[1]> eval(as.list(sys.calls()[[1]])[[1]])
#> function(x) {gg(x)}
我们也可以在 deparse
ing
之后使用 get
Browse[1]> get(deparse(as.list(sys.calls()[[1]][1])[[1]]))
#function(x) {gg(x)}
我正在尝试从调用对象中检索函数对象 在这个例子中
ff = function(x) {gg(x)}
gg = function(y) {uu(y)}
uu = function(z) {browser()}
ff(1)
说我想从 sys.calls()[[1]]
得到函数 ff
我得到了下面的但是我想要 ff
函数对象,我怎样才能得到它
Browse[1]> deparse(sys.calls()[[1]][1])
[1] "ff()"
您可以通过将调用转换为列表并对其第一个成员(即符号 ff
进行子集化)来提取符号。然后你可以 eval
这个符号来显示函数体(或者用它来构建一个新的调用)
Browse[1]> eval(as.list(sys.calls()[[1]])[[1]])
#> function(x) {gg(x)}
我们也可以在 deparse
ing
get
Browse[1]> get(deparse(as.list(sys.calls()[[1]][1])[[1]]))
#function(x) {gg(x)}