gpt4 book ai didi

r - 如何测试函数环境中是否存在变量?

转载 作者:行者123 更新时间:2023-12-04 10:49:36 26 4
gpt4 key购买 nike

给定函数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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com