Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/77.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中的函数调用中是否使用或修改了默认参数_R_Function_Arguments_Logic - Fatal编程技术网

测试在R中的函数调用中是否使用或修改了默认参数

测试在R中的函数调用中是否使用或修改了默认参数,r,function,arguments,logic,R,Function,Arguments,Logic,快速提问。我正在用R编写一些复杂的函数,我遇到了一个情况,我有几个我想要使用的函数默认值(例如,nA=5,nB=5,nPos=4,nNeg=4)。这些默认值内置于函数中,因此我不必指定它们,除非我想修改它们。但是,是否需要在函数中执行一些逻辑,以查看是否提到了它们 例如,假设用户仅指定(nA=3和nB=5)。。。有没有一种方法可以从中获取数字8,因为用户在函数调用中显式引用了它们(而不是依赖默认值?) 希望这是有道理的 f罗兰的答案更准确,但也许你要寻找的只是 f <- function(

快速提问。我正在用R编写一些复杂的函数,我遇到了一个情况,我有几个我想要使用的函数默认值(例如,nA=5,nB=5,nPos=4,nNeg=4)。这些默认值内置于函数中,因此我不必指定它们,除非我想修改它们。但是,是否需要在函数中执行一些逻辑,以查看是否提到了它们

例如,假设用户仅指定(nA=3和nB=5)。。。有没有一种方法可以从中获取数字8,因为用户在函数调用中显式引用了它们(而不是依赖默认值?)


希望这是有道理的

f罗兰的答案更准确,但也许你要寻找的只是

f <- function(a=2, b=3) {
  "b" %in% names(as.list(match.call()))
}

f()
#[1] FALSE
f(b=1)
#[1] TRUE
function(a=5) if( a !=5 ) print('hey, you changed a!') 
缺失()


在函数中使用变量,如果用户没有指定它们,它们将获得默认值。那么除此之外,你还需要什么呢?这些都很有用。我知道默认值是在未指定时设置的。我想要告诉的是,用户是否在函数调用中显式指定了参数,而不是依赖默认值。换言之,函数是否有任何方法来判断是否在调用中指定了参数,而不是依赖默认值?(提示:一种解决方案是查看值是否为默认值,但我希望进行逻辑测试,以查看调用中是否提到了这些值)。请注意:与
?missing
,“missing(x)仅在x进入函数后未被更改时才可靠”
> f = function(a=1, b=2, c=3) missing(b)
> f(1, c=3)
[1] TRUE
> f(1, 3)
[1] FALSE