Dziś miały miejsce tutoriale na useR 2014. Materiały pomocnicze, kody i slajdy można pobrać ze strony http://user2014.stat.ucla.edu/#tutorials. Poniżej opiszę wrażenia z dwóch tutoriali w których byłem udział.
Rano wybrałem ,,Applied Spatial Data Analysis with R” skuszony materiałami, które są streszczeniem książki autora warsztatów Virgilio Rubio. Niestety o ile materiały są przydatne, o tyle warsztaty były przykładem próby pokazania 320 slajdów (nie przesadzam, specjalnie policzyłem) w 3 godziny, przy okazji przelatując przez pięć różnych przykładowych danych i kilkanaście modeli. Gdyby to jeszcze były slajdy z obrazkami, ale na wielu z nich były poważne wzory.
Po południu wybrałem (drogą eliminacji) dplyr prezentowany przez Hadley Wickhama i to był świetny wybór. Hadley zdążył ,,przerobić” 60 slajdów ale w taki sposób, że się można było czegoś nauczyć. Jeden ciekawy przykładowy zbiór danych pozwalał na przećwiczeniu ze zrozumieniem większości z przedstawianych tricków. Zabawki w stylu operatora pipeline '%>%’ (dlaczego tego nie było wcześniej?), tłumaczenia składni dplyra na SQL (można teraz pracować na NAPRAWDĘ dużych danych), joiny oraz funkcje działające w oknach (wreszcie merdże i operacje w grupach zrobione są porządnie) to wszystko co dało się w zagmatwany sposób zrobić też wcześniej, ale teraz wreszcie można zrobić to z przyjemnością.
Gorąco polecam materiały z tego tutoriala.
dplyr jest świetny, bardzo podoba mi się składnia i jej intuicyjność. Jednak pod względem wydajności jeszcze musi trochę nadrobić w porównaniu do data.table.
Na prawdziwym badaniu (~19 mln rekordów) postanowiłem sprawdzić to samo działanie: grupowanie (po 4 zmiennych), obliczenie dwóch średnich, a następnie na wyniku obliczenie wskaźnika średnia1/średnia2. Zbiór wejściowy był klasy data.table dlatego, że dplyr również obsługuje tę klasę (dla dplyra zmieniłem go na tbl, oba miały klucze dla zmiennych grupujących). Takie wyniki otrzymałem:
dplyr:
użytkownik system upłynęło
10.41 15.74 155.86
data.table
użytkownik system upłynęło
2.99 0.87 28.19
Winda 64bit, 8gb ram, i7-4700Q 2.4 GHz
Szkoda, że data.table nie ma aż takiej przejrzystej składni jak dplyr 🙂
Na razie to oswajanie ze składnią i elementami ekosystemu rstudio, więc wydajnością się tak nie przejmują (temat wydajności pojawił się też przy ggvis)
Do większych danych dplyr współpracuje z bazą danych i tłumaczy swoje operacje na SQL
nie sprawdzałem jeszcze, ale powinien być tak szybki jak szybka jest baza danych.
Tego jeszcze nie zdążyłem przetestować. Postaram się w poniedziałek sprawdzić jak to działa w przypadku korzystania z serwera.