"object not found error" 来自函数内部的 eval
"object not found error" from eval inside a function
我正在使用 shorthand 进行字符串评估,它在不同的上下文中表现不同。我使用的函数是
teval = function(string,...){
eval(parse(text = string), ...)
}
当 运行 这个函数来自全局环境时,它按预期工作,可以访问环境变量。例如:
a = 3
teval('a')
永远return 3
teval
另一方面,函数内部根据 R 版本有不同的行为
tevalyFun = function(){
a=3
teval('a')
}
tevalyFun()
将给出 Error in eval(expr, envir, enclos) : object 'a' not found
错误。或者将 return 定义在函数外的 a
。我要求解释发生的事情和解决问题的方法。
我们可以将teval
中的envir
指定为environment
(使用R 3.3.0
)
a <- 231
tevalyFun = function(){
a=3
teval('a', envir = environment())
}
tevalyFun()
#[1] 3
我正在使用 shorthand 进行字符串评估,它在不同的上下文中表现不同。我使用的函数是
teval = function(string,...){
eval(parse(text = string), ...)
}
当 运行 这个函数来自全局环境时,它按预期工作,可以访问环境变量。例如:
a = 3
teval('a')
永远return 3
teval
另一方面,函数内部根据 R 版本有不同的行为
tevalyFun = function(){
a=3
teval('a')
}
tevalyFun()
将给出 Error in eval(expr, envir, enclos) : object 'a' not found
错误。或者将 return 定义在函数外的 a
。我要求解释发生的事情和解决问题的方法。
我们可以将teval
中的envir
指定为environment
(使用R 3.3.0
)
a <- 231
tevalyFun = function(){
a=3
teval('a', envir = environment())
}
tevalyFun()
#[1] 3