获取函数的名称

时间:2012-05-15 13:32:52

标签: r

希望这不是太简单。我正在寻找一个函数,它给我一个函数的名称,我分配给一个变量。像

这样的东西
x <- mean
the_function_i_look_for(x)
[1] "mean"

有什么想法吗?非常感谢提前!

修改

好的,这是一个更详细的例子:实际上我有一个函数,我传递一个任意的对数,然后给我一个data.frame。数据框的一个列名应该表明使用了哪个对数。

> myFunction <- function( log, x ) {
    df <- data.frame( x, log(x))
    names(df) <- c(the_function_i_look_for(log), "x")
    return(df)
  }
> myFunction( log10, c(10,100,1000) )
>   log10    x
  1     1   10
  2     2  100
  3     3 1000

1 个答案:

答案 0 :(得分:3)

您可以使用?substitute

myFunction <- function( log, x ) {
    df <- data.frame( x, log(x))
    names(df) <- c("x", substitute(log))
    return(df)
}

myFunction( log10, c(10,100,1000) )
#     x log10
#1   10     1
#2  100     2
#3 1000     3

编辑: 似乎也适用于ReferenceClasses:

foo <- setRefClass("foo",
    methods = list(
    bar = function(x) {
        message("function: ", substitute(x))
    }
))

f <- foo$new()
f$bar(log)
# function: log
f$bar(mean)
# function: mean