R - 将函数转换为字符串

时间:2016-11-17 16:25:37

标签: r

我正在开发一个与Reduce类似的函数,在这个函数中传入一个函数并将其分配给参数。这是一个简单的例子来展示我正在做的事情。

fun <- function(f){

    switch(f,
           `+` = "addition",
           stop("undefined")
    )
}

fun(`+`)

现在这显然不会成功,因为switch需要characternumeric EXPR。我不知道该怎么做的是将传递给f的函数fun转换为string

2 个答案:

答案 0 :(得分:4)

一种方法是捕获输入并解析呼叫。

proc means data=have;
class MC Date;
var DIA;
run;

答案 1 :(得分:-1)

在上面的皮埃尔评论中,可以使用identical来测试两个函数是否相同。这对switch不起作用,但if / else树仍然相对简单:

fun <- function(f) {
    if (identical(f, `+`)) {
        return('addition')
    } else if (identical(f, mean)) {
        return('mean')
    } else {
        return('undefined')
    }
}