0

我正在尝试使用一个函数来修改另一个函数的默认设置,formals但我的问题是,当我之后检查我的函数默认值时,什么都没有改变。我的代码(减去不相关的东西)是:

ScouringSettings <- function(min.MAF=NULL, eq.thresh=NULL){
  if (is.null(min.MAF) && is.null(eq.thresh)){
    maf <- paste0("Minimum MAF criterion is: ", formals(GeneScour)$min.maf)
    eq  <- paste0("Chi² HW equilibrium threshold: ", formals(GeneScour)$min.eq)
    cat(paste(maf, eq, sep="\n"))
  } else if (is.null(eq.thresh)) {
    formals(GeneScour) <- alist(gene=, min.maf = min.MAF, min.eq = formals(GeneScour)$min.eq)
  } else if (is.null()){
    formals(GeneScour) <- alist(gene=, min.maf = formals(GeneScour)$min.maf, min.eq = eq.thresh)
  } else {
    formals(GeneScour) <- alist(gene=, min.maf = min.maf, min.eq = eq.thresh)
  }
}

我认为可能是因为范围问题或其他原因,所以我尝试打印出默认值,同时仍在我的第一个函数中并打印:

$gene

$min.maf
min.MAF

$min.eq
formals(GeneScour)$min.eq

即使我用力打字

formals(GeneScour) <- alist(gene=, min.maf = 2, min.eq = formals(GeneScour)$min.eq)

修改不会在ScouringSettings.

我有点迷茫,我该怎么办?

4

0 回答 0