如何访问R中的函数名?

时间:2014-11-26 14:09:14

标签: r

我正在编写一个接收两个参数的函数:数据框和函数,并且在处理数据框之后,使用函数参数(例如,mean,sd,...)对其进行汇总。我的问题是,如何获取作为参数接收的函数的名称?

4 个答案:

答案 0 :(得分:4)

怎么样:

f <- function(x) deparse(substitute(x))
f(mean)
# [1] "mean"
f(sd)
# [1] "sd"

答案 1 :(得分:1)

do.call可能就是你想要的。您可以将函数名称作为字符值,然后将list个参数传递给do.call进行评估。例如:

X<-"mean"
do.call(X,args=list(c(1:5)) )
[1] 3

答案 2 :(得分:1)

也许我误解了这个问题,但似乎你可以简单地将函数名作为参数,并在函数中像普通函数一样评估函数。这种方法对我来说很好。省略号用于为您感兴趣的函数添加参数。

myFunc=function(data,func,...){return(func(data,...))}
myFunc(runif(100), sd)

如果您想将其应用于data.frame的每个列或行,您只需在myFunc中使用apply语句即可。

答案 3 :(得分:0)

这是我的尝试,也许,您想要返回两者结果和函数名称:

y <- 1:10

myFunction <- function(x, param) {
  return(paste(param(x), substitute(param)))
}

myFunction(y, mean)
# [1] "5.5 mean"