我正在尝试使用一个函数来修改另一个函数的默认设置,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
.
我有点迷茫,我该怎么办?