如何检查我传递给自定义函数的函数(作为参数)?

时间:2014-02-11 05:47:46

标签: r function

我有一个接受函数作为参数的函数。但是在我的函数中,我需要创建一个变量,具体取决于我传入的函数。如何实现这一目标?

以下代码说明了这个想法(它不起作用,因为FUN无法与mean进行比较。

myfunc <- function(x,FUN){
  if(FUN==mean){y <- 1;}else{y <- 2;}
  return(FUN(x+y));
}

谢谢!

1 个答案:

答案 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)