如何在R中引用函数名的字符串?

时间:2015-11-16 16:21:10

标签: r string function

hello = function(day){
    print day 
    print "was a good day"
}

func = hello
func("Monday")


print(func) #Want it to print "hello"

我正在尝试print(func)打印文字字符串“hello”,但我的代码的其他部分仍然有func("Monday")。是否有可能做到这一点?如何将func指定为文字“hello”?

我试过了

as.character(func)
deparse (func)

但无济于事。有任何想法吗?感谢

2 个答案:

答案 0 :(得分:0)

您可以这样做:

as.character(quote(hello))

但是func不再与名称hello相关联。 hello函数的内容转移而不是名称hello。所以你不能使用func来恢复你好的字符串。

编辑:实际上我错了。见弗兰克的评论。你可以这样做:

hello = function(x) sprintf("%s was a good day",x)

func = function(x) hello(x); 

as.character(body(func)[[1]])

答案 1 :(得分:0)

而不是func <- hello,您需要func <- "hello"