Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 在条件为on时使用默认参数调用函数_R - Fatal编程技术网

R 在条件为on时使用默认参数调用函数

R 在条件为on时使用默认参数调用函数,r,R,我有一个函数foo,它接受一个参数并有一个默认参数 foo <- function(b = 2) b 如果栏中提供了b我想用此参数调用foo 如果不是我想用默认参数调用foo 我该怎么做 (我找不到这个问题的好标题,如果你知道更好的,请更改它。)你可以使用…参数: foo <- function(b = 2) b bar <- function(a, ...) { a * foo(...) } bar(a=5) bar(3, b=3) bar(3, 7) foo可

我有一个函数
foo
,它接受一个参数并有一个默认参数

foo <- function(b = 2) b
  • 如果
    栏中提供了
    b
    我想用此参数调用
    foo
  • 如果不是我想用默认参数调用
    foo
我该怎么做


(我找不到这个问题的好标题,如果你知道更好的,请更改它。)

你可以使用
参数:

foo <- function(b = 2) b
bar <- function(a, ...) {
  a * foo(...)
}

bar(a=5)
bar(3, b=3)
bar(3, 7)

foo可能
a*如果(is.null(b))foo()else foo(b)
foo
以及
bar
中为
b
保留相同的默认值是吗?@GKi是的,当然这是一个解决方案,但它确实非常优雅,我希望我能做得更好这可能会有所帮助:-@RonakShah我认为这不是一个好的解决方案。如果此默认参数中有更改,则需要在两个位置进行更改,这很容易出错。我有相同的想法(
),但您的解决方案更优雅是的,正确。这也是我想到的第一件事,因为它被频繁使用。我想也许还有另一种方法,但当然,这是一种很好的方法。
foo <- function(b = 2) b
bar <- function(a, ...) {
  a * foo(...)
}

bar(a=5)
bar(3, b=3)
bar(3, 7)