Ho definito una funzione personalizzata, in questo modo:Ripetizione di una funzione definita dall'utente utilizzando replicare() o sapply()
my.fun = function() {
for (i in 1:1000) {
...
for (j in 1:20) {
...
}
}
return(output)
}
che restituisce una matrice di uscita, output
, composta da 1000 righe e 20 colonne.
Che cosa devo fare è ripetere la funzione di dire 5 volte e per memorizzare i cinque output
risultati in una nuova matrice di zecca, dicono final
, ma senza l'utilizzo di un altro ciclo for (questo per rendere il codice più chiaro, e anche perché in un secondo momento vorrei provare a parallelizzare queste ulteriori 5 ripetizioni).
Quindi final
dovrebbe essere una matrice con 5000 righe e 20 colonne (la logica dietro queste 5 ripetizioni è che all'interno dei due cicli forali utilizzo, tra le altre funzioni, sample
).
Ho provato a utilizzare final <- replicate(5, my.fun())
, che calcola correttamente le cinque repliche, ma poi devo "manualmente" inserire gli elementi in una nuova matrice 5000 x 20. C'è un modo più elastico per farlo? (forse usando sapply()
?). Molte grazie
Molte grazie per l'aiuto. A proposito, riguardo all'array delle tre dimensioni, avevi ragione :) – Stezzo