我想将对象传递met
给函数sf
,但得到对象未找到错误。我认为它可能与未传递给子函数的顶级函数调用的环境有关:
f <- function(fname,x,met=c('sum','subs')){
.env <- environment() ## identify the environment
do.call(fname,list(x,met),envir=.env)
}
sf <- function(x,...){
if (met== 'sum') x + 100 else x - 100
}
f('sf',1:10,met='sum')