【发布时间】:2021-09-21 17:37:42
【问题描述】:
我想创建一个基于不同参数和主体生成函数的函数。
例如,取n=2 和a=paste0("a",1:2n),即a=c("a1","a2","a3","a4")。
那我想创建一个函数如下-
fa = function(a1,a2,a3,a4) {
args_fa = unlist(as.list(environment())) # catch all the arguments as a list
v1 = args_fa[1:n] # assign values to baseline function arguments
v2 = args_fa[(n+1):2*n]
f(v1,v2)
}
n=3 也一样,我希望函数看起来像这样 -
fa = function(a1,a2,a3,a4,a5,a6) {
args_fa = unlist(as.list(environment())) # catch all the arguments as a list
v1 = args_fa[1:n] # assign values to baseline function arguments
v2 = args_fa[(n+1):2*n]
f(v1,v2)
}
函数内部的f 是一个基线函数(固定),不会发生变化。我的问题是如何根据更改n 创建fa?
【问题讨论】:
-
如果你传递不同的参数,使用
...而不是函数重载 -
你在哪里定义
n? (不要说“在全局或调用者的环境中”:-)