
R development
Szkolenia otwarte
3 300 PLN
Szkolenia zamknięte
Cena ustalana indywidualnie
O szkoleniu
R jest obecnie jednym z najpopularniejszych narzędzi stosowanych do analizy danych. Z pomocą tego języka programowania możemy przeprowadzać skomplikowane obliczenia, transformacje, analizy statystyczne, budować modele ekonometryczne, tworzyć piękne wykresy a nawet zautomatyzować raport analityczny.
Dzięki dużej liczbie osób zaangażowanych w rozwój R liczba zastosowań i dostępnych metod statystycznych ciągle rośnie.
Szkolenie to ma na celu wprowadzenie uczestników w zaawansowane aspekty programowania w tym języku.
Dla kogo jest to szkolenie?
Szkolenie kierowane jest do osób, które mają już doświadczenie w pracy z językiem programowania R. Zawsze staramy się dostosować nasze szkolenia do poziomu wiedzy kursanta, ale aby szkolenie przyniosło jak największą korzyść warto, by kursant miał już pewne obycie z R.
Nasze szkolenie kierujemy do:
- Analityków
- Konsultantów
- Statystyków
- Studentów
Nasi kursanci pracują z R w różnych branżach (finanse, produkcja, medycyna itp.). Zawsze podczas szkolenia staramy się położyć nacisk na te elementy R, które będą im najbardziej przydatne w codziennej pracy
Czego się nauczę?
Jest to szkolenie zaawansowane. Naszym celem jest takie poprowadzenie kursu, by po jego ukończeniu uczestnik biegle korzystał z R. Dodatkowo pokazujemy też najczęstsze problemy i błędy, które pojawiają się zazwyczaj podczas korzystania z bardziej zaawansowanych funkcji R.
Po ukończeniu szkolenia, uczestnik będzie potrafił:
- Zwiększyć wydajność pisanego kodu – źle pisany kod mści się na programiście w miarę rozwoju projektu. Uczymy prawidłowych technik pisania poprawnego i wydajnego kodu, dzięki czemu nawet przy większej rozbudowie programu będzie on spełniał swoją funkcję i nie będzie wymagał poprawek.
- Budować pętle i warunkować wykonanie kodu – pętle to podstawa każdego języka programowania. Pokazujemy jak prawidłowo budować pętle.
- Automatyzować zadania analityczne – automatyzacja zawsze jest mile widziana, bo pomaga zaoszczędzić czas i środki. Pokazujemy jak działa automatyzacja w R i j jak ją wykorzystać przy zadaniach analitycznych
- Implementować funkcje z R w C++ nawet bez dobrej znajomości C++. Dzięki Rcpp implementacja kodu C++ przebiega w podobnym stylu do tego z którego korzystasz w R.
- Zwiększyć wydajność pisanego kodu – źle pisany kod mści się na programiście w miarę rozwoju projektu. Uczymy prawidłowych technik pisania poprawnego i wydajnego kodu, dzięki czemu nawet przy większej rozbudowie programu będzie on spełniał swoją funkcję i nie będzie wymagał poprawek
- Korzystać z systemu kontroli wersji – uczymy podstaw używania Git’a oraz serwisu Github.
- Stworzyć własny pakiet R – dzięki czemu możemy udostępnić pomocne funkcje użytkownikom R lub ułatwić ich ponowne wykorzystanie w swojej pracy. Zaprezentowane zostaną wszystkie dobre praktyki związane z tworzeniem pakietu takie jak np. testowanie i tworzenie dokumentacji.
Plan szkolenia
Moduł I – Tworzenie dobrego kodu w R
- Konfiguracja R dla wydajnego programowania
- Zarządzanie ustawieniami startowymi R
- Konfiguracja RStudio
- Zarządzanie biblioteki i wersjami
- Przygotowanie środowiska dev
- Kompilacja pakietów ze źródła
- BLAS
- Hardware do pracy R
- Praca projektowa w R
- Planowanie pracy w ramach projektu – typologia projektów w R
- Podział pracy na kawałki i wizualizacja
- Organizacja pracy w ramach projektów w Rstudio
- Bezpieczne definiowanie ścieżek do plików
- Zarządzanie projektem i kodem w ramach projektu
- Dobór bibliotek do projektu
- Kontrola wersji z Git i GitHub
- Konfiguracja Git i GitHub
- Tworzenie i zarządzanie repozytorium
- Codzienna praca z kontrolą wersji w R
- Commit zmian lokalnie i push na github
- Rozwiązywanie problemów i konfliktów
- Reguły dobrego stylu w tworzeniu kodu R
- Biblioteki wspierające – styler i lintr
- Konwencje nazwy i struktura plików
- Składnia kodu
- Funkcje
- Refactoring kodu
- Dobre praktyki przy tworzeniu kodu w R
- Struktura folderów
- Struktura kodu i implementacja
- Input z rio
- Funkcje i wartości domyślne
- Zarządzanie środowiskiem
- Zarządzanie danymi
- Zarządzanie pamięcią
- Output
- Environments i ich wykorzystanie
- Debugowanie kodu
- Narzędzia wspomagające debugowanie
- Interaktywne śledzenie błędów – stack
- Komunikaty error, warning, info message
Moduł II – Zaawansowane programowanie w R
- Wyrażenia kontrolujące wykonanie kodu
- If else
- for
- break
- next
- Funkcje
- Struktura funkcji w R
- Parametry nazwane i wartości domyślne
- Ewaluacja typu lazy
- Operator infix
- Funkcje wektoryzowane
- Programowanie funkcyjne
- Paradygmat programowania funkcyjnego w R
- Funkcje rekurencyjne
- Scope i Environment
- Closures
- Funkcje wyższego rzędu
- Filter map reduce
- Rodzina apply
- Programowanie funkcyjne z pakietem purr
- Programowanie obiektowe
- Klasy
- Obiekty klasy S3
- Rozpoznawanie obiektów, fukcje ogólne, metody
- Definiowanie klasy i tworzenie obiektów
- Tworzenie nowych metod i funkcji ogólnych
- Walidacja nowych obiektów
- Obiekty klasy S4
- Rozpoznawanie obiektów, fukcje ogólne, metody
- Definiowanie klasy i tworzenie obiektów
- Tworzenie nowych metod i funkcji ogólnych
- Walidacja nowych obiektów
- Obiekty klasy R6
- Rozpoznawanie obiektów, fukcje ogólne, metody
- Definiowanie klasy i tworzenie obiektów
- Tworzenie nowych metod i funkcji ogólnych
- Klasy referencyjne
- Definiowanie klasy referencyjnej
- Tworzenie nowych obiektów
- Rozpoznawanie obiektów i metod
- Metody i funkcje ogólne
- Definicja metod
- Tworzenie nowych metod dla istniejących funkcji
- Techniki programowania metod
- Funkcje ogólne
- Wybór metod przez funkcje ogólne
- Pamięć
- Wielkość obiektów
- Wykorzystanie pamięci i garbage collector
- Profilowanie wykorzystania pamięci
- Zarządzanie błędami
- Definiowanie warunków error, warning, message
- Zarządzanie błędami try, tryCatch, withCallingHandlers
- Pakiet tryCatchLog do lepszego zarządzania
- Programowanie defensywne
- Analiza wydajności i jej optymalizacja
- Profilowanie i mierzenie wykonania kodu
- Bilbioteka microbenchmark i jej wykorzystanie
- Biblioteka profvis
- Strategie w optymalizacji
- Organizacja kodu
- Gotowe rozwiązania
- Minimalizacja nakładów
- Wektoryzacja
- Unikanie kopiowania
- JIT Kompilacja kodu byte-code
- Obliczenia równoległe
Moduł III – Budowa pakietów w R
- Konfiguracja środowiska Rstudio do budowy pakietów
- Reguły dobrego stylu w budowie pakietów
- Nazwy i organizacja plików
- Dokumentacja
- Testy
- Zarządzanie błędami
- Development pakietu R
- Struktura pakietu i elementy tworzące
- Tworzenie szkieletu pakietu z wykorzystaniem devtools
- Kod R
- Metadane, Licencja
- Dokumentacja
- Vignettes
- Frameworki do testowania pakietu R
- Namespace
- Kompilacja
- Publikacja pakietu i wymagania CRAN
- Continous integration
- Rcpp – Implementacja funkcji R w C++
- Słabości R i w jakich sytuacjach wykorzystać Rcpp
- Tworzenie i kompilacja kodu
- Embedowanie Rcpp w kodzie R
- Typy danych i praca na nich
- Przykłady zastąpienia kodu R z Rcpp
Moduł IV – Case study – Development w R
- Analiza problemu i projekt
- Podział pracy na bloki
- Stworzenie projektu i repozytorium
- Kodowanie rozwiązania
- Testowanie
- Dokumentacja
- Kompilacja do biblioteki