R 如何测试函数';什么是环境?

R 如何测试函数';什么是环境?,r,function,environment,R,Function,Environment,给定函数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,即使用户的脚本中在函数f之外的其他地方定义了b 我认为这与exists()的where参数有关,但我不知道调用此参数的

给定函数
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
,即使用户的脚本中在函数
f
之外的其他地方定义了
b

我认为这与
exists()
where
参数有关,但我不知道调用此参数的合适环境是什么。我还没有完全了解R


谢谢

只需使用exists的
inherits=
参数即可。有关更多信息,请参阅
“存在”
帮助页

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

b天哪:RTFM又赢了!:-)