什么是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
}