Potrzebuję utworzyć dodatkową nazwę dla funkcji my_function (i, x) (gdzie i
może być liczbą całkowitą od 1 do 25). ja jak go do pracy jak toDodatkowa nazwa funkcji, ale z mniejszą liczbą argumentów.
- my_function1 (X) SAMES jak My_function (1 x)
- my_function2 (x) sames jak My_function (2 x)
- my_function3 (x) sames jak My_function (3 x)
- ...
- my_function25 (x) sames jak My_function (25, x)
Jednym ze sposobów osiągnięcia tego celu byłoby:
my_function1 <- function (x) my_function(1, x)
my_function2 <- function (x) my_function(2, x)
my_function3 <- function (x) my_function(3, x)
...
Ale ponieważ jest ich 25, rozsądnie byłoby zrobić to w pętli. Do tego Próbowałem:
for(i in 1:25){
assign(paste("my_function",i,sep=""),function(x) my_function(i,x))
}
ale to nie działa, ponieważ i
jest przekazywane przez referencję i w końcu wynik był
- my_function1 (x) sames jak My_function (25, x)
- my_function2 (x) sames jak My_function (25, x)
- my_function3 (x) sames jak My_function (25, x)
- ...
Jak przekazać "i" według wartości? A może jest jakiś inny sposób ...
Dlaczego miałbym to robić? Poprawiam niektóre z innych pakietów R pod kątem wydajności, ale jednocześnie potrzebuję ich zgodności ze starszą wersją.
Zapraszamy do SO. Znajdziecie lepsze odpowiedzi, jeśli następnym razem opublikujecie [przykład odtwarzalny] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example).Lub tym razem, ponieważ możesz edytować swój wpis :-) –
@ AriB.Friedman Dzięki :) Następnym razem będę pamiętać, aby napisać powtarzalny przykład. Curry wygląda bardzo czysto i działa idealnie, ale w tym przypadku wolałbym używać standardowych funkcji R, ponieważ nie chcę instalować żadnych dodatkowych pakietów. – LukaszJ