R 在嵌套函数中传递表达式
我试图在一系列嵌套函数中传递一个表达式。下面是我想做的工作的一个简化示例:R 在嵌套函数中传递表达式,r,R,我试图在一系列嵌套函数中传递一个表达式。下面是我想做的工作的一个简化示例: require(shiny) outterfunc <- function(a,b,expr){ innerfunc <- function(a,b, expr){ shiny::exprToFunction(expr,quoted = F)() } return(innerfunc(a = a+1,b= b+1, expr=expr)) } 这给了我类似的错误 # Error in e
require(shiny)
outterfunc <- function(a,b,expr){
innerfunc <- function(a,b, expr){
shiny::exprToFunction(expr,quoted = F)()
}
return(innerfunc(a = a+1,b= b+1, expr=expr))
}
这给了我类似的错误
# Error in exprToFunction(expr, quoted = F)() : object 'b' not found
我设法用eval(parse(text=paste)(…
sequence)解决了这个问题,但我想知道是否有干净的方法在嵌套函数之间传递表达式
提前感谢您阅读此文章。在这种情况下,这似乎会起作用
outterfunc <- function(a,b,expr){
innerfunc <- function(a,b, expr){
ex <- eval(substitute(substitute(expr)),parent.frame())
eval(ex, environment())
}
return(innerfunc(a = a+1,b= b+1, expr=expr))
}
outterfunc(2,5,{a*b})
# [1] 18
outterfuncexprToFunction
从何而来?请务必包含所有相关软件包的参考。感谢您的回复,并对exprToFunction
带来的不便表示歉意。我使用得太广泛了,以至于忘了它不是基本函数:)
outterfunc <- function(a,b,expr){
innerfunc <- function(a,b, expr){
ex <- eval(substitute(substitute(expr)),parent.frame())
eval(ex, environment())
}
return(innerfunc(a = a+1,b= b+1, expr=expr))
}
outterfunc(2,5,{a*b})
# [1] 18