Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.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_Arguments_R Package - Fatal编程技术网

什么是R包';检查尚未运行的函数的参数的最佳实践是什么? 问题定义

什么是R包';检查尚未运行的函数的参数的最佳实践是什么? 问题定义,r,arguments,r-package,R,Arguments,R Package,在包中,用户可以选择不同的选项,并根据这些选项传递附加参数。由于这些函数在计算上具有挑战性,我想在进行任何大规模运行之前检查用户是否通过了所需的参数。例如,在以下代码中: FunOne <- function(x, y, z,...){ FunTwo(x,y,z, ...) # computationally challenging FunThree(x,y,z, ...) } FunOne我认为你的建议可以奏效。我不完全理解全局变量的价值/用途,通常会尽量避免这样的事情。但严格地说,这

在包中,用户可以选择不同的选项,并根据这些选项传递附加参数。由于这些函数在计算上具有挑战性,我想在进行任何大规模运行之前检查用户是否通过了所需的参数。例如,在以下代码中:

FunOne <- function(x, y, z,...){
FunTwo(x,y,z, ...) # computationally challenging
FunThree(x,y,z, ...)
}

FunOne我认为你的建议可以奏效。我不完全理解全局变量的价值/用途,通常会尽量避免这样的事情。但严格地说,这是可行的。似乎缺少两样东西:

  • list(…)
    将把
    值放在一个列表中,以便您可以检查它们。请参阅
    的帮助

  • 加载包时,
    .onAttach
    将运行。以下是一个例子:


  • .onAttach可能会将其拆分为多个函数,例如,一个roach 1获得了自己的函数,然后对基于选择的参数使用match.arg()或rlang arg_match,并使用简单的if检查和填充谢谢@Bruno,我想我做不到这一点。我想在运行函数之前测试它,因为许多参数都是附加参数,可能会遗漏一个或两个必需的参数(基于其他选项)。因此,我需要在开始任何重要计算之前检查它们。使用全局变量不是一个好的做法。使用stopifnot()断言正确的输入是一种很好的做法。
    
    .onAttach <- function(...) {
    
      # Do something when the package loads
    
    }