我有一个函数f:
f=function(){}
和变量
var=f
我想知道如何使用var获取函数f的名称? 我试过了:
as.character(quote(var))
但我得到“var”,如果我尝试eval(var),我得到函数(){}
有没有人有解决方案?感谢
答案 0 :(得分:4)
执行:var=f
时,您实际上是在创建一个与var
具有相同内容的新变量f
。
总之,您不能在您给出的示例中访问f
的名称,因为R没有保留任何历史记录。
我不确定你想要做什么,但以下内容可能会有所帮助:
#definition of the function f
f=function(){}
#assignation of the reference 'f' instead of the content of f with substitute()
var=substitute(f)
#checking what is inside var
var
> f
#if you need to use f through var, you have to use eval()
eval(var)
> function(){}
答案 1 :(得分:1)
var=f
指定function(){}
到var
。它只知道它是一个函数并且“忘记”变量名。这段代码:
f <- function(){}
var <- f
具有与此相同的效果:
var <- function(){}