【问题标题】:How to check which function I passed (as an argument) to a self-defined function? [duplicate]如何检查我将哪个函数(作为参数)传递给自定义函数? [复制]
【发布时间】:2014-02-11 05:47:46
【问题描述】:

我有一个接受函数作为参数的函数。但是在我的函数中,我需要根据传递给它的函数创建一个变量。如何实现?

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

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

谢谢!

【问题讨论】:

标签: r function


【解决方案1】:

您的问题相当于“我如何比较函数?”。见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)

【讨论】:

  • 谢谢。我感觉这个问题以前一定有人回答过,但是我想不出一个好的搜索关键字……
  • 没关系,不客气!
猜你喜欢
  • 2014-08-18
  • 1970-01-01
  • 1970-01-01
  • 2013-01-27
  • 2020-03-22
  • 2019-12-18
  • 2019-03-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多