将代码作为参数传递给R函数

将代码作为参数传递给R函数,r,R,我想创建一个R函数,它是用户创建自己的新函数的“助手”。用户将代码作为参数传递,并将其合并到新函数中 我非常确定这需要非标准的评估,我已经检查了以前的StackOverflow答案以及Advanced R中的NSE章节,但就是无法破解它。有人知道如何使下面的代码工作并返回3吗 create_new_function <- function(f){ task <- function(a, b){ f #how do I make f evaluate here as a+

我想创建一个R函数,它是用户创建自己的新函数的“助手”。用户将代码作为参数传递,并将其合并到新函数中

我非常确定这需要非标准的评估,我已经检查了以前的StackOverflow答案以及Advanced R中的NSE章节,但就是无法破解它。有人知道如何使下面的代码工作并返回3吗

create_new_function <- function(f){
  task <- function(a, b){
    f  #how do I make f evaluate here as a+b?
  }
  
  return(task)
}


user_function <- create_new_function(a+b)

user_function(1,2)

create_new_函数
create_new_函数如果你没有传递函数,你传递了一个
表达式
Fardata已经更新了答案。现在正好,谢谢!
create_new_function <- function(f){
  express <- substitute(f)
  task <- function(a, b){
    return(eval(express))
  }
  return(task)
}

user_function <- create_new_function(a+b)

print(user_function(1,2))