我正在尝试创建一个函数,其中默认参数由一个仅暂时存在于环境中的变量给出,例如:
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不存在?我有一种感觉,正确的答案涉及评估,引用和/或替代的混合,但我似乎无法找到正确的咒语。
答案 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
这就是我想要实现的目标。