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

问题描述:

我有一个接受函数作为参数的函数。但是在我的函数中,我需要根据传递给它的函数来创建一个变量。这怎么能实现?如何检查我将哪个函数(作为参数)传递给自定义函数?

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

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

谢谢!

+0

可能:http://*.com/questions/14806627/getting-the-name-of-a-data-frame/14806676#14806676 –

您的问题等同于“我如何比较功能?”。见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) 
+0

感谢。我有一种感觉,以前必须回答,但我想不出一个好的搜索关键字... – David

+0

这是好的,不客气! – tonytonov