我想在 R 中使用变量中的值来定义函数。但是,在声明函数后,我仍然可以在函数定义中看到变量名称而不是它们的值。这是一个例子:
> variable <- 10
> fn <- function() {message(variable*2)}
> fn
function() {message(variable*2)}
我期待看到的是:
> variable <- 10
> fn <- function() {message(variable*2)}
> fn
function() {message(10*2)}
我该如何解决这个问题?
就像@MrFlick 在他的评论中一样,我不知道你为什么要这样做。 但如果你有理由这样做,这里有一种方法:
fn <- function() 1 # dummy declaration
body(fn) <- substitute(
# The body of the function
{message(variable*2)},
# The substitutions you want
list(variable = 10))
fn
#> function ()
#> {
#> message(10 * 2)
#> }
创建于 2024-09-05,使用 reprex v2.1.1