Ich muss einen zusätzlichen Namen für my_function (i, x) erstellen (wobei i
eine ganze Zahl von 1 bis 25 sein kann). Ich mag es wie diesZusätzlicher Funktionsname, aber mit weniger Argumenten
- my_function1 (x) Sames als my_function (1, x)
- my_function2 (x) Sames als my_function (2, x)
- my_function3 (x) sames arbeiten wie my_function (3, x)
- ...
- my_function25 (x) sames als my_function (25, x)
Eine Möglichkeit, dies würde zu tun erreichen sein:
my_function1 <- function (x) my_function(1, x)
my_function2 <- function (x) my_function(2, x)
my_function3 <- function (x) my_function(3, x)
...
Aber da es 25 von ihnen gibt, wäre es vernünftig, es in einer Schleife zu machen. Dafür habe ich versucht:
for(i in 1:25){
assign(paste("my_function",i,sep=""),function(x) my_function(i,x))
}
, aber es funktioniert nicht, da i
durch Bezugnahme und am Ende ging das Ergebnis
- my_function1 (x) Sames als my_function (25, x)
- my_function2 (x) Sames als my_function (25, x)
- my_function3 (x) Sames als my_function (25, x)
- ...
Wie kann ich "i" nach Wert übergeben? Oder vielleicht gibt es einen anderen Weg ...
Warum sollte ich das tun? Ich verbessere irgendjemand anderes R-Paket in Bezug auf die Effizienz, aber gleichzeitig muss ich es mit der alten Version kompatibel sein.
Willkommen bei SO. Sie werden feststellen, dass Sie bessere Antworten erhalten, wenn Sie das nächste Mal ein [reproduzierbares Beispiel] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example) veröffentlichen.Oder dieses Mal, da du deinen Post editieren kannst :-) –
@ AriB.Friedman Danke :) Das nächste Mal werde ich daran denken, reproduzierbares Beispiel zu schreiben. Curry sieht sehr sauber aus und es funktioniert perfekt, aber in diesem Fall würde ich lieber einige Standard-R-Funktionen verwenden, da ich wirklich keine zusätzlichen Pakete installieren möchte. – LukaszJ