纠正R中的错误捕获

纠正R中的错误捕获,r,R,这个问题可能不属于这里,但我需要一些关于什么是“最佳实践”的建议。我有几个函数,它们都依赖于相同的输入,比如a,b,和c。为这些函数创建错误陷阱函数是否是一种良好的做法?还是应该将其编码到每个函数中 例如: firstFunction <- function(a, b, c) { # check a; check b; check c; # do something } secondFunction < function(a, b, c, from_first) {

这个问题可能不属于这里,但我需要一些关于什么是“最佳实践”的建议。我有几个函数,它们都依赖于相同的输入,比如
a
b
,和
c
。为这些函数创建错误陷阱函数是否是一种良好的做法?还是应该将其编码到每个函数中

例如:

firstFunction <- function(a, b, c) {
  # check a; check b; check c; 
  # do something
}

secondFunction < function(a, b, c, from_first) {
  # check a; check b; check c; 
  # do something
}

firstFunction您还可以创建一个新的entry函数,在其中进行检查并调用第一个或第二个函数。由于这两个函数共享许多参数,因此其行为应该相似,因此将它们分组在同一个主函数中是合乎逻辑的。还请注意,使用此解决方案,您只需在代码中执行一次调用检查,这样更易于维护

firstFunction <- function(a, b, c) {
  # do something
}

secondFunction <- function(a, b, c, from_first) {
  # do something
}

mainFunction(a,b,c,type="first",...){
  do.check(a,b,c)  ##  you should define this function
  switch(type,
         first  = firstFunction(a,b,c),
         second = secondFunction(a,b,c,...))
}

firstFunction是的,良好实践。除其他优点外,它将使您的代码易于维护,因为如果需要,您只需在一个地方对其进行修改。因此,编写一个检查
a
b
c
的函数,并让第一个和第二个函数在执行任何操作之前调用该函数。您可以将函数作为参数传递,而不是
键入
。谢谢,这很有帮助。我想确保我正在编写的包代表了最佳实践。我不是程序员,所以我的目标是建立一个“坚实的基础”,开发人员可以从中启动更好的扩展。
firstFunction <- function(a, b, c) {
  # do something
}

secondFunction <- function(a, b, c, from_first) {
  # do something
}

mainFunction(a,b,c,type="first",...){
  do.check(a,b,c)  ##  you should define this function
  switch(type,
         first  = firstFunction(a,b,c),
         second = secondFunction(a,b,c,...))
}
run_with_check <- function(fun, a, b, c, ...){ 
      do.check(a, b, c)
      do.call(fun,list(a, b, c, ...))
}