我有一个接受函数作为参数的函数。但是在我的函数中,我需要创建一个变量,具体取决于我传入的函数。如何实现这一目标?
以下代码说明了这个想法(它不起作用,因为FUN
无法与mean
进行比较。
myfunc <- function(x,FUN){
if(FUN==mean){y <- 1;}else{y <- 2;}
return(FUN(x+y));
}
谢谢!
答案 0 :(得分:0)
您的问题等同于“我如何比较功能?”。见here,答案是
myfunc <- function(x, FUN){
if (identical(FUN, mean)) y <- 1 else y <- 2
return (FUN(x+y));
}
myfunc(1, mean)
[1] 2 # = mean(1+1)
myfunc(1, sqrt)
[1] 1.732051 # = sqrt(1+2)