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

如何在R中引用函数名的字符串?,r,string,function,R,String,Function,我正试图让print(func)打印文本字符串“hello”,但在我的代码的其他部分仍然有func(“星期一”)工作。有可能这样做吗?如何将func指定为文字“hello” 我试过了 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(“星期一”)
工作。有可能这样做吗?如何将func指定为文字“hello”

我试过了

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

func = hello
func("Monday")


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

但是没有用。有什么想法吗?谢谢

您可以这样做:

as.character(func)
deparse (func)
as.character(quote(hello))
但是func不再与名称hello关联。hello函数的内容会被传递,但不会传递名称hello。因此不能使用func恢复hello字符串

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

as.character(func)
deparse (func)
as.character(quote(hello))

而不是
func写错了问题,我仍然希望'func(“周一”)`在我的代码中工作。看来我的实现可能无法直接工作。有什么变通办法我可以用吗?我很困惑。您将函数命名为
hello
,但您使用
func()
调用它。为什么?上面的代码都不运行。试试
hello=function(x)sprintf(“%s是个好日子”,x);func=函数(x)hello(x);正文(func)[[1]]
。我想这是你能得到的最接近的了。