Jeszcze kilkanaście, a nawet kilka lat temu o R nie było raczej zbyt głośno. Bazujący na oldschoolowej, proceduralnej składni i mało wydajny program nie był zbyt atrakcyjny jako alternatywa dla innych języków programowania. Szybko okazało się jednak, że ten stworzony w latach ’90 język szybko zyskuje na popularności wraz ze wzrostem zainteresowania rynku specjalnością data science. R stał się łatwo dostępnym środowiskiem służącym analitykom danych, a niekoniecznie programistom. Jaka jest jednak przewaga R nad innymi językami?

Stack Overflow Traffic to programming languages
Porównanie popularności zapytań dotyczących wybranych języków programowania w serwisie Stack Overflow. W wahaniach popularności C widać być może wakacje i okresy egzaminów studenckich 🙂

Przede wszystkim należy zaznaczyć, że do analizy danych czy uczenia maszynowego R nadaje się równie dobrze jak Python. Te dwa języki stanowią „biblię” data science i absolutną podstawę działania w tych obszarach. W ogólności, cokolwiek na polu data science da się zrobić w R, jest również wykonalne w Pythonie i odwrotnie. R to naturalnie środowisko open source, do którego łatwiej niż gdziekolwiek indziej można dołożyć swoją cegiełkę. Baza R to ponad 14 tysięcy pakietów do najróżniejszych celów – od uproszczeń w składni, przez zbiory otwartych danych, po wizualizację danych czy modele predykcyjne – a liczba bibliotek codziennie rośnie dzięki zaangażowaniu użytkowników. Do każdej z nich istnieje wyczerpująca dokumentacja, dostępna z poziomu RStudio (najczęściej używanego środowiska i kompilatora do R). Język ten jest też bardzo uniwersalny dzięki możliwościom połączenia z innymi językami (C, Java), SQL-owymi bazami danych (szczególnie przydatne przy działaniu na dużych zbiorach, gdzie nie trzeba ich importować do R) czy narzędziom do big data, jak Spark albo Hadoop.

Zastosowania R

Odkąd w R stworzono pakiet dplyr, możemy bardzo szybko i łatwo kształtować swoje zbiory danych i wyłuskiwać z nich potrzebne informacje. dplyr pozwala przetworzyć dane w formie łańcucha kodu, dzięki czemu proces ten jest szybki i czytelny. Pakiet ten jest częścią większej biblioteki tidyverse, gromadzącej pakiety służące do szybkiego przetwarzania danych – oprócz dplyr znajdziemy tam na przykład readr, bibliotekę ułatwiającą pobieranie danych bez potrzeby konwersji znaków do czynników, czy ggplot2, ogromne narzędzie do przedstawiania najróżniejszych wykresów. Poniżej przykładowy kod, dla każdego gatunku w tabeli starwars obliczający jego średnia masę oraz liczebność grupy – czytelne, prawda?

starwars %>%
  group_by(species) %>%
  summarise(
    n = n(),
    mass = mean(mass, na.rm = TRUE)
  ) %>%
  filter(n > 1,
         mass > 50)

## # A tibble: 8 x 3
##   species      n  mass
##   <chr>    <int> <dbl>
## 1 Droid        5  69.8
## 2 Gungan       3  74  
## 3 Human       35  82.8
## 4 Kaminoan     2  88  
## 5 Mirialan     2  53.1
## 6 Twi'lek      2  55  
## 7 Wookiee      2 124  
## 8 Zabrak       2  80

Ponieważ aktywną społeczność użytkowników R tworzą w dużej mierze statystycy, R można używać do dowolnych metod analizy statystycznej. Czy to randomizacje, testowanie hipotez, analiza wariancji/regresji, szeregi czasowe czy analiza przeżycia, bez problemu znajdziemy odpowiednie funkcje w podstawowej wersji R lub w bibliotekach. Coraz silniejsze w R stają się jednak narzędzia do uczenia maszynowego, co niegdyś było bardziej domeną Pythona. Oprócz funkcji do samego zbudowania modelu i predykcji – niezależnie czy mówimy o regresji logistycznej, drzewach decyzyjnych, klasyfikacji, czy o ewaluacji wyniku – istnieje też szereg algorytmów pomocniczych, jak np. MICE (algorytm uzupełniający brakujące dane w tabeli) czy PCA (redukcja wymiaru).

Czysty kod generowany w RStudio niespecjalnie nadaje się do prezentacji szerszemu gronu odbiorców, ale z pomocą RMarkdown i Shiny bez problemu można pokazać wyniki swojej pracy. Pierwsze z tych narzędzi służy do generowania czytelnych raportów, w których można pokazać „wyczyszczone” wyniki i wykresy bez kodu, natomiast Shiny buduje aplikacje webowe.

Shiny web app
Przykładowa aplikacja Shiny: wykres ocen wybranych filmów.

Łatwość importowania, przetwarzania, wizualizacji i analizy danych, a następnie budowania modelu i prezentowania wyników sprawia, że data science jest łatwiejsze i przyjemniejsze dzięki R. A skoro przez wielu to właśnie ta profesja jest wskazywana jako najbardziej przyszłościowa, to wydaje się, że R może szybko dołączyć do kanonu IT.