【问题标题】:Argument names function R参数名称函数 R
【发布时间】:2018-10-17 01:59:29
【问题描述】:

我正在尝试创建一个函数,并且我希望能够获取我的参数的名称,为此我使用了formalArgs(我发现它是对我这样的问题的回答),但我不明白什么我想要(我什至尝试过formals())。

这是我的功能

entropy= function(...) 
{
rest of the code
print(formalArgs(entropy))
}

当我调用函数 entropy(h1,h2,h3) 正式的Args 打印

$...  

但我希望能够得到

h1,h2,h3

有没有办法做到这一点? 谢谢:)

【问题讨论】:

  • 您可能想要all.names(match.call())[-1] 之类的东西。 entropy(h1, h2 = 1, h3) 的预期输出是什么?
  • all.names(match.call())[-1] 完美运行。谢谢!
  • 或者print(names(list(...)))给定h1h2h3已经定义了吗?
  • 已经尝试过 print(names(list(...))),我得到 NULL,但是谢谢!
  • 即使您使用 entropy(h1=1,h2=2,h3=3) 运行该功能?

标签: r function arguments


【解决方案1】:

使用substitute() 获取未更改的输入并对其进行解析。

entropy= function(h1,h2,h3) 
{
  #rest of the code
  print(c( deparse(substitute(h1)), deparse(substitute(h2)), deparse(substitute(h3))))
}

entropy(a,b,c)
#[1] "a" "b" "c"

【讨论】:

  • 习惯上,如果它适合你,就接受答案。