R 更改包中所有函数中的公共默认参数

R 更改包中所有函数中的公共默认参数,r,R,我想写一个函数,将默认值“重置”为包中所有R函数的公共参数 这可能吗 我想到的是这个,但它只返回一个curried函数列表: library(magrittr) function(parameter){ ls("package:packageName") %>% lapply(function(fxnName){ functional::Curry(get(fxn), paramOfInterest = parameter) } } 管道%%>%来自ma

我想写一个函数,将默认值“重置”为包中所有R函数的公共参数

这可能吗

我想到的是这个,但它只返回一个curried函数列表:

library(magrittr)

function(parameter){ 
   ls("package:packageName") %>%
   lapply(function(fxnName){
      functional::Curry(get(fxn), paramOfInterest = parameter)
   }
}
管道
%%>%
来自
magrittr

我想这样做的一个警告是丢失文档


也许我可以通过引用一个可修改并存储在包中对象中的属性来解决这个问题?

虽然可以通过分配给全局环境来实现这一点,但我认为以下内容更简洁,因为通过
分离环境可以轻松恢复默认行为:

首先是一些演示功能,因为我不知道您要使用哪个软件包:

packageDemo <- new.env()
makeFun <- function(x) {x;function(param) c(x, param)}
for (i in paste0("f", letters)) assign(i, makeFun(i), packageDemo)
现在进行一些演示

attach(packageDemo)
fc("Testing")
#[1] "fc"   "Testing"
fc()
#Error in fc() : argument "param" is missing, with no default

newPack <- curryPackage(packageDemo, param = "demo")
attach(newPack)
#The following objects are masked from packageDemo:
#
#    fa, fb, fc, fd, fe, ff, fg, fh, fi, fj, fk, fl, fm, fn, fo, fp, fq, fr, fs, ft, fu, fv, fw, fx, fy, fz
fc("Testing")
#Error in (function (param)  : unused argument ("Testing")
fc()
#[1] "fc"   "demo"
附加(packageDemo)
fc(“测试”)
#[1] “fc”“测试”
fc()
#fc()中出错:缺少参数“param”,没有默认值
新包装
attach(packageDemo)
fc("Testing")
#[1] "fc"   "Testing"
fc()
#Error in fc() : argument "param" is missing, with no default

newPack <- curryPackage(packageDemo, param = "demo")
attach(newPack)
#The following objects are masked from packageDemo:
#
#    fa, fb, fc, fd, fe, ff, fg, fh, fi, fj, fk, fl, fm, fn, fo, fp, fq, fr, fs, ft, fu, fv, fw, fx, fy, fz
fc("Testing")
#Error in (function (param)  : unused argument ("Testing")
fc()
#[1] "fc"   "demo"