验证R中函数内的对象是否存在

Ins*_*nds 5 environment r scoping

我想确定一个对象是否存在于R中的函数内:

foo <- function() {
 y <- "hello" 
 if (exists(y, envir = sys.frame())) print(y)
}
foo()
Run Code Online (Sandbox Code Playgroud)

存在错误(y,envir = sys.frame()):第一个参数无效

我想添加envir = sys.frame()就可以了.也试过了envir = environment()

预期

foo()
"hello"
Run Code Online (Sandbox Code Playgroud)

李哲源*_*李哲源 5

你应该检查过?exists

Usage:

     exists(x, where = -1, envir = , frame, mode = "any",
            inherits = TRUE)

Arguments:

       x: a variable name (given as a character string).
Run Code Online (Sandbox Code Playgroud)

exists("y")