4

我正在尝试提取函数体内未在该函数中定义但在环境堆栈的某处定义的所有符号。我最初认为我可以使用 的返回值来做到这一点codetools::findGlobals,但显然这个函数并没有完全按照我的想法做,因为它错过了引用表达式中引用的变量。请参阅下面的可重现示例:

x = 2
y = 1
hidden = function() {
  eval(quote({ x + y }))
}
revealed = function() {
  x + y
}
codetools::findGlobals(hidden)
codetools::findGlobals(revealed)

鉴于 的这种限制findGlobals,是否有首选的替代技术?

4

0 回答 0