将代码作为参数传递给R函数
我想创建一个R函数,它是用户创建自己的新函数的“助手”。用户将代码作为参数传递,并将其合并到新函数中 我非常确定这需要非标准的评估,我已经检查了以前的StackOverflow答案以及Advanced R中的NSE章节,但就是无法破解它。有人知道如何使下面的代码工作并返回3吗将代码作为参数传递给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+
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))