假设我有一个功能:
f <- function() {
x + 1
}
Run Code Online (Sandbox Code Playgroud)
这x是一个自由变量,因为它的值没有在函数中定义f.有没有办法可以x从定义的函数中获取变量名称,比如说f?
我在维护别人的旧R代码的同时问这个问题.使用了很多自由变量,这使调试变得困难.
任何建议也受到欢迎.
该编码工具编码工具包具有以下功能:用于此目的,例如,findGlobals
findGlobals(f, merge=FALSE)[['variables']]
# [1] "x"
Run Code Online (Sandbox Code Playgroud)
如果我们重新定义函数以具有命名参数,x则不返回任何变量.
f2 <- function(x){
x+1
}
findGlobals(f2, merge=FALSE)[['variables']]
# character(0)
Run Code Online (Sandbox Code Playgroud)