我需要为 my_function(i,x) 创建附加名称(其中i
可以是 1 到 25 之间的整数)。我希望它像这样工作
- my_function1(x) 与 my_function(1,x) 相同
- my_function2(x) 与 my_function(2,x) 相同
- my_function3(x) 与 my_function(3,x) 相同
- ...
- my_function25(x) 与 my_function(25,x) 相同
实现这一目标的一种方法是:
my_function1 <- function (x) my_function(1, x)
my_function2 <- function (x) my_function(2, x)
my_function3 <- function (x) my_function(3, x)
...
但由于其中有 25 个,因此将其置于循环中是合理的。为此,我尝试过:
for(i in 1:25){
assign(paste("my_function",i,sep=""),function(x) my_function(i,x))
}
但它不起作用,因为它i
是通过引用传递的,最后结果是
- my_function1(x) 与 my_function(25,x) 相同
- my_function2(x) 与 my_function(25,x) 相同
- my_function3(x) 与 my_function(25,x) 相同
- ...
如何按值传递“i”?或者也许还有其他方法...
我为什么要这样做?我正在提高其他人的 R 包的效率,但同时我需要它与旧版本兼容。