Devo creare un nome aggiuntivo per my_function (i, x) (dove i
può essere un numero intero compreso tra 1 e 25). Mi piacerebbe farlo funzionare come questoNome funzione aggiuntivo ma con meno argomenti
- my_function1 (x) Sames come my_function (1, x)
- my_function2 (x) sames come my_function (2, x)
- my_function3 (x) Sames come my_function (3, x)
- ...
- my_function25 (x) sames come my_function (25, x)
Un modo per farlo raggiungere questo obiettivo potrebbe essere:
my_function1 <- function (x) my_function(1, x)
my_function2 <- function (x) my_function(2, x)
my_function3 <- function (x) my_function(3, x)
...
Ma dal momento che ci sono 25 di questi sarebbe ragionevole farlo in un ciclo. Per questo ho provato:
for(i in 1:25){
assign(paste("my_function",i,sep=""),function(x) my_function(i,x))
}
ma non funziona in quanto i
è passato per riferimento e alla fine il risultato è stato
- my_function1 (x) Sames come my_function (25, x)
- my_function2 (x) sames come my_function (25, x)
- my_function3 (x) sames come my_function (25, x)
- ...
Come posso passare "i" in base al valore? O forse c'è un altro modo ...
Perché dovrei voler fare questo? Sto migliorando qualcun altro pacchetto R in termini di efficienza ma allo stesso tempo ho bisogno che sia compatibile con la vecchia versione.
Benvenuti a SO. Troverai risposte migliori se pubblichi un [esempio riproducibile] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example) la prossima volta.O questa volta, dal momento che puoi modificare il tuo post :-) –
@ AriB.Friedman Grazie :) La prossima volta mi ricorderò di scrivere un esempio riproducibile. Curry sembra molto pulito e funziona perfettamente, ma in questo caso preferirei utilizzare alcune funzioni R standard in quanto non voglio installare alcun pacchetto aggiuntivo. – LukaszJ