Programowanie i analiza danych w R 2016/2017
(Programming & Data Analysis in R)
Wydział Matematyki i Nauk Informacyjnych Politechniki Warszawskiej, przedmiot obieralny, studia mgr., kier. Matematyka

Informacje ogólne

Wykład: dr inż. Marek Gągolewski pon., 16-18, s. 101
Laboratoria: dr inż. Marek Gągolewski pon., 18-20, s. 219
mgr Krzysztof Rudaś pon., 18-20, s. 202

Kurs poświęcony jest wprowadzeniu do programowania w języku R. Uczestnicy kursu mają możliwość dogłębnego poznania technik programowania w języku R.

Szczególny kładziemy na omówienie i ćwiczenie technik programowania oraz użycia narzędzi przydatnych w pracy matematyka-praktyka (m.in. na stanowiskach analityk danych, statistical programmer, junior data scientist) i w zastosowaniach naukowo-badawczych.

Harmonogram zajęć

Wymagane oprogramowanie

Wymagania wstępne (przedmioty poprzedzające)

  • Podstawy programowania w języku C++
  • Algorytmy i struktury danych
  • Metody numeryczne
  • Rachunek prawdopodobieństwa i statystyka matematyczna

Literatura i odnośniki

Podstawowa:
  1. Gągolewski M., Programowanie w języku R, Wydawnictwo Naukowe PWN, wyd. 2, Warszawa, 2016
  2. Jones O., Maillardet R., Robinson A., Introduction to Scientific Programming and Simulation Using R, Chapman & Hall/CRC, 2014
  3. Matloff N.S., The Art of R Programming: A Tour of Statistical Software Design, No Starch Press, 2011
  4. Wickham H., Advanced R, Chapman & Hall/CRC, 2014
  5. Wickham H., Grolemund G., R for Data Science, O'Reilly, 2017
  6. Eddelbuettel, D., Seamless R and C++ integration with RCpp, Springer, 2013
Uzupełniająca:
  1. Chambers J.M., Programming with Data, Springer, 1998 (The Green Book)
  2. Chambers J.M., Extending R, Chapman & Hall/CRC, 2016
  3. Grolemund G., Hands-On Programming with R, O'Reilly, 2014
  4. Venables W.N., Ripley B.D., S Programming, Springer, 2000
  5. Mittal H.V., R Graphs Cookbook, Packt Publishing, 2011
  6. Murrell P., R Graphics, Chapman & Hall/CRC, 2006
  7. Abelson H., Sussman J., Sussman G.J., Struktura i interpretacja programów komputerowych, WNT, Warszawa, 2002
  8. Wickham H., testthat: Getting started with Testing, R Journal 3(1), 2011, s. 3-10
  9. Wickham H., Grolemund G., R for Data Science, O'Reilly, 2016

Ciekawe strony

  1. Strona projektu R
  2. Strona domowa RStudio IDE
  3. The R Journal
  4. R-bloggers: R news & tutorials from the Web
  5. knitr: Elegant, flexible and fast dynamic report generation with R
  6. Mathematical Annotation in R
  7. tikzDevice: A device for R graphics output in PGF/TikZ Format

Tydzień 1. (2016-10-03)

Wprowadzenie do R i RStudio,
Klasyfikacja typów danych w R,
Podstawowe typy atomowe: Wektory i NULL

Materiały pomocnicze:
  1. Kody z wykładu i lab oraz zestawy zadań znajdują się na GitLabie
  2. Uwaga: należy „obserwować” (Watch) ww. repozytorium, gdyż inaczej nie będą Państwo otrzymywać wiadomości e-mail nt. aktualizacji, ogłoszeń itp. (sekcja Issues)
  3. Dokumentacja RStudio (szczególnie warty przeczytania jest punkt skróty klawiszowe)
  4. Markdown intro
  5. Markdown basics @ GitHub
  6. RMarkdown basics @ RStudio
  7. RMarkdown output formats @ RStudio
  8. Pandoc
  9. knitr chunk options

Zwracamy uwagę na funkcję source(). Możemy wywoływać ją w plikach .R i dokumentach knitra.

Zachęcamy do pracy w stylu: każde „duże zadanie” (np. praca domowa) – osobne projekt w RStudio.

Tydzień 2. (2016-10-10)

Operacje na wektorach

Materiały pomocnicze:
  1. kody z wykładu i lab oraz zestawy zadań znajdują się na GitLabie

Tydzień 3. (2016-10-17)

Listy,
Funkcje,
Atrybuty obiektów

Materiały pomocnicze:
  1. kody z wykładu i lab oraz zestawy zadań znajdują się na GitLabie

Praca domowa nr 1 (mała) – termin oddania: 24.10.2016.

Tydzień 4. (2016-10-24)

Typy złożone: macierze, czynniki i ramki danych

Materiały pomocnicze:
  1. kody z wykładu i lab oraz zestawy zadań znajdują się na GitLabie

Tydzień 5. (2016-11-07)

Wyrażenie warunkowe i pętle,
Obsługa wyjątków,
Rcpp – cz. I

Materiały pomocnicze:
  1. kody z wykładu i lab oraz zestawy zadań znajdują się na GitLabie
  2. dplyr (zob. pracę domową nr 2)
  3. data.table (zob. pracę domową nr 2)
  4. RSQLite (zob. pracę domową nr 2)

Praca domowa nr 2 (mała) – termin oddania: 14.11.2016.

Tydzień 6. (2016-11-14)

Rcpp – cz. II

Materiały pomocnicze:
  1. kody z wykładu i lab oraz zestawy zadań znajdują się na GitLabie
  2. rcpp.org

Praca domowa nr 3 (mała) – termin oddania: 21.11.2016.

Tydzień 7. (2016-11-21)

Rcpp – cz. III

Materiały pomocnicze:
  1. kody z wykładu i lab oraz zestawy zadań znajdują się na GitLabie
  2. rcpp.org

Tydzień 8. (2016-11-28)

Rcpp – cz. IV,
Tworzenie własnych pakietów R

Materiały pomocnicze:
  1. kody z wykładu i lab oraz zestawy zadań znajdują się na GitLabie
  2. rcpp.org

Tydzień 9. (2016-12-05)

Grafika – cz. I

Materiały pomocnicze:
  1. kody z wykładu i lab oraz zestawy zadań znajdują się na GitLabie

Tydzień 10. (2016-12-12)

Grafika – cz. II

Materiały pomocnicze:
  1. kody z wykładu i lab oraz zestawy zadań znajdują się na GitLabie

Tydzień 11. (2016-12-19)

GODZINY DZIEKAŃSKIE

W tym dniu nie ma zajęć.

Praca domowa nr 4 (duża) – termin oddania: 19.12.2016.

Tydzień 12. (2017-01-02)

Przetwarzanie napisów – cz. I

Materiały pomocnicze:
  1. kody z wykładu i lab oraz zestawy zadań znajdują się na GitLabie
  2. stringi – dokumentacja on-line

Tydzień 13. (2017-01-09)

Przetwarzanie napisów – cz. II (wyrażenia regularne)

Materiały pomocnicze:
  1. kody z wykładu i lab oraz zestawy zadań znajdują się na GitLabie
  2. stringi – dokumentacja on-line
  3. regular-expressions.info
  4. Regular Expressions – ICU User Guide
Materiały pomocnicze:
  1. kody z wykładu i lab oraz zestawy zadań znajdują się na GitLabie

Tydzień 14. (2017-01-16)

Przetwarzanie plików,
Data i czas

Materiały pomocnicze:
  1. kody z wykładu i lab oraz zestawy zadań znajdują się na GitLabie

Praca domowa nr 5 (mała) – termin oddania: 16.01.2017.

Praca domowa nr 6 (duża) – termin oddania: 16.01.2017.

Tydzień 15. (2017-01-23)

Środowiska,
Środowiskowy model obliczeń i niestandardowa ewaluacja

Materiały pomocnicze:
  1. kody z wykładu i lab oraz zestawy zadań znajdują się na GitLabie

Praca domowa nr 7 (duża) – termin oddania: 05.02.2017.