从全局变量继承R函数参数

时间:2016-07-19 07:51:23

标签: r function arguments

我正在尝试创建一个函数,其中默认参数由一个仅暂时存在于环境中的变量给出,例如:

arg=1:10
test=function(x=arg[3]){2*x}

> test()
[1] 6

只要arg存在于函数环境中,上述工作正常。但是,如果我删除arg:

> rm(arg)
> test()
> Error in test() : object 'arg' not found

有没有一种方法可以将默认参数视为3,即使arg不存在?我有一种感觉,正确的答案涉及评估,引用和/或替代的混合,但我似乎无法找到正确的咒语。

2 个答案:

答案 0 :(得分:1)

在我看来,正确的做法是:

test <- function(x=3) { 2 *x }

然后用参数调用它:

arg<-1:10
test(arg[3])

这样默认值为3,然后在运行时传递你想要的参数,如果你在没有参数test()的情况下调用它,它将使用默认值。

答案 1 :(得分:1)

上面的帖子让我走上正轨。使用形式:

newDriver.FindElement(By.XPath("//input[@value='login']")).Click();

[1] 6

这就是我想要实现的目标。