给定函数f()
如下:
f = function(a) {
if(a > 0) b = 2
c = exists('b')
return(c)
}
如何指定
exists()
函数只能在函数 f
内搜索?在空白环境下,调用
f(-5)
将返回 FALSE
如我所愿,但如果我这样做b = "hello"
f(-5)
然后我得到
TRUE
.我如何获得 f(-5)
返回 FALSE
即使用户有 b
在函数 f
之外的脚本中的其他位置定义?我预计这与
where
有关exists()
的参数但我无法弄清楚调用此参数的正确环境是什么。我还没有完全了解 R 中的环境......谢谢!
最佳答案
只需使用 inherits=
存在的参数。见 ?exists
帮助页面了解更多信息
b <- 100
f <- function(a) {
if(a > 0) b <- 2
c <- exists('b', inherits=FALSE)
return(c)
}
f(5)
# [1] TRUE
f(-5)
# [1] FALSE
关于r - 如何测试函数环境中是否存在变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31095561/