避免变量名称以 R 中的函数定义结尾

问题描述 投票:0回答:1

我想在 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)}

我该如何解决这个问题?

r function variables function-definition function-declaration
1个回答
0
投票

就像@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

© www.soinside.com 2019 - 2024. All rights reserved.