2009-08-06 21 views

Odpowiedz

12

Po pierwsze, wiele z tych "pętli jest złym" wywodzi się z ciemnych wieków, kiedy pętle są w rzeczywistości mniej wydajne, w szczególności w niektórych wersjach S-Plus.

To powiedział, a gdy Twój komentarz o potrzebie dużego obiektu indeksu jest poprawna, można też użyć

  • funkcje z rodziny apply takich jak sapply, lapply lub tapply rozwinąć swoje struktury

  • stosunkowo nowy iterators pakiet który unika również dużą wektor wzmiance jako ograniczenie pamięci

  • the Ra 'accelerated R' variant and its jit package, które mogą znacznie przyspieszyć proste pętle.

Jako dodatkowy bonus, opcje jednego i dwóch dać drogę do równoległego wykonywania pętli na odpowiednich systemów przy użyciu narzędzi z pakietów CRAN śnieg, wielordzeniowych lub NWS żeby wymienić tylko kilka.

+0

Dirk, czytałem niedawno artykuł Ihaka & Lang ("Powrót do przyszłości: Lisp jako baza dla systemu obliczeń statystycznych)", w którym pętle R porównują się niekorzystnie z Pythonem. Obaj są powolni w porównaniu do CLOS. Pytam dookoła, czy R stanie się "nie mniej podobnym" językiem funkcjonalnym. Jakie masz zdanie? – gappy

+1

Brak wglądu tutaj, przepraszam. Z jednej strony masz dużą bazę użytkowników R i potrzebę kompatybilności wstecznej, z drugiej chcesz eksperymentować z nowymi funkcjami. Myślę, że zmiany będą tylko ewolucyjne, a nie rewolucyjne. –