2009-08-06 11 views

risposta

12

Prima di tutto, un sacco di quel "loops fa male" deriva dal periodo oscuro in cui i loop sono stati implementati in modo meno efficiente, in particolare in alcune versioni di S-Plus.

Detto questo, e mentre i suoi commenti circa la necessità di un grande oggetto indice è corretta, si potrebbe anche usare

  • funzioni dal apply famiglia come sapply, lapply o tapply srotolare vostre strutture

  • relativamente nuova iterators pacchetto che evita anche il grande vettore lei ha citato come un vincolo di memoria

  • il Ra 'accelerated R' variant and its jit package che può accelerare notevolmente i cicli semplici.

Come bonus aggiuntivo, le opzioni di uno e due che invia un cammino verso l'esecuzione parallela delle anse sui sistemi adeguati utilizzando strumenti dal CRAN pacchetti neve, multicore, o NWS solo per citarne alcuni.

+0

Dirk, ho letto di recente un articolo di Ihaka & Lang ("Ritorno al futuro: Lisp come base per un sistema di calcolo statistico)", in cui R va a confronto sfavorevolmente con Python. Entrambi sono lenti rispetto a CLOS. Sto chiedendo in giro se R diventerà "non dissimile" da un linguaggio funzionale. Qual è il tuo prendere ?? – gappy

+1

Nessun approfondimento aggiunto qui, mi dispiace. Da un lato hai la grande base di utenti di R e la necessità di compatibilità con le versioni precedenti, dall'altra il desiderio di sperimentare nuove funzionalità. Penso che i cambiamenti saranno solo evolutivi, non rivoluzionari. –