Dzień dobry,Pętle nieskuteczność w R
I zostały rozwijania przez kilka miesięcy w badania i muszę mieć pewność, że czas realizacji mojego kodu nie jest zbyt długa, bo analizy dużych zbiorów danych.
Dlatego starałem się używać jak najwięcej funkcji wektorowych.
Nadal się zastanawiam.
Co jest kosztowne w R, czy sama pętla nie jest właściwa? Mam na myśli, problem pojawia się, gdy zaczniesz modyfikować zmienne w pętli na przykład, czy to prawda?
W związku z tym zastanawiałem się, co zrobić, jeśli po prostu trzeba uruchomić funkcję na każdym elemencie (tak naprawdę nie dbasz o wynik). Na przykład, aby zapisać dane w bazie danych. Co powinieneś zrobić?
1) używać mapply bez przechowywania wynik w dowolnym miejscu?
2) zrobić pętlę nad wektorem i zastosować tylko f (i) do każdego elementu?
3) Czy istnieje lepsza funkcja, którą mogłem pominąć?
(to oczywiście przy założeniu, że funkcja nie jest optymalnie wektoryzowana).
Co z zestawem foreach
? Czy zauważyłeś poprawę wydajności dzięki używaniu go?
Zostawię odpowiedź na kogoś, kto jest bardziej ekspertem ode mnie, ale w moim doświadczeniu praktycznym te * Stosowanie funkcji zwykle (ale nie zawsze) znacznie przyspieszyć. – nico
Chyba tak, ponieważ pętla jest wykonywana "w C", a nie bezpośrednio przez R. – SRKX
Zobacz ten wpis SO na rodzinie zastosowania - http: // stackoverflow.com/questions/2275896/is-rs-apply-family-more-than-syntactic-sugar – csgillespie