繁体   English   中英

如何在R中访问函数名称?

[英]How do I access function names in R?

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

怎么样:

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

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

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

也许我误解了这个问题,但是似乎您可以简单地将函数名称作为参数,然后像正常函数一样对函数求值。 这种方法对我来说很好。 省略号用于为您所关注的功能添加参数。

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

而且,如果您想将其应用于data.frame每一列或每一行,则可以在myFunc简单地使用一条apply语句。

这里是我的尝试,也许,你想同时返回结果和函数的名称:

y <- 1:10

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM