Język R jest opracowaną w ramach projektu GNU "wolną" wersją języka S. Jest to środowisko do analizy danych obejmujące:
Język R jest dostępny w postaci kodu źródłowego oraz skompilowanych pakietów binarnych na platformy Linux, OS X, Windows. Więcej informacji o języku R można znaleźć na stronach CRAN (The Comprehensive R Archive Network), gdzie dostępne są pakiety źródłowe i binarne, dokumentacja, oraz obszerne zasoby bibliotek.
Każda osoba z doświadczeniem programistycznym może w krótkim czasie opanować umiejętność programowania w języku R. Dostępne w nim wyrażenia i struktury sterowania odpowiadają tym, które są doskonale znane z większości języków programowania ogólnego przeznaczenia, a drobne różnice składniowe nie są istotną przeszkodą. Szczególnej uwagi wymagają pewne specyficzne mechanizmy języka, w znakomity sposób ułatwiające manipulacje na danych w postaci tabelarycznej, oraz bogaty zestaw funkcji bibliotecznych.
Najlepszą metodą przyswojenia sobie podstaw języka R jest przestudiowanie i przećwiczenie jednego z dostępnych kursów lub podręczników, np.:
W trakcie samodzielnego korzystania z języka przydatne mogą być materiały referencyjne, np.:
Poza tym pomoc dostępna dla operatorów języka i funkcji bibliotecznych jest w większości przypadków faktycznie pomocna. W tworzeniu pakietów języka R pomoże artykuł Creating R packages: A Tutorial.Rozpoczynając korzystanie z języka R szczególną uwagę należy zwrócić na następujące elementy:
read.table, write.table),
apply itp.),
install.packages) i dostępu do ich funkcji (funkcja
library) oraz zbiorów danych (funkcja data),
Ze względu na zakres wykładu i projektu z ZUM uwagę zasługują m.in. następujące pakiety języka R:
stats -- standardowe funkcje statystyczne i niektóre
podstawowe algorytmy klasyfikacji, regresji i grupowania
(m.in. model liniowy, algorytm k średnich, algorytm wstępującego
grupowania hierarchicznego),
mlbench -- popularne zbiory danych do eksperymentów,
rpart, rpart.plot, partykit
-- drzewa decyzyjne,
kknn, knncat, knnTree,
knnflex, knnFinder, class --
modele pamięciowe,
ipred, boost, ada --
metody bagging i boosting,
randomForest, ranger -- lasy losowe,
xgboost -- eXtreme gradient boosting,
cluster, flexclust -- grupowanie,
e1071 -- różne użyteczne funkcje, m.in. do
klasyfikacji, regresji i grupowania (w tym naiwny klasyfikator
bayesowski, SVM, strojenie parametrów algorytmów),
klaR -- kilka algorytmów klasyfikacji (naiwny
klasyfikator bayesowski, kNN, SVM),
kernlab -- algorytmy klasyfikacji, regresji i
transformacji danych wykorzystujące funkcje jądrowe (m.in. SVM,
SVR),
nnet -- sieci neuronowe i pokrewne algorytmy, w tym
regresja logistyczna,
arules -- reguły asocjacyjne,
recommenderlab -- środowisko do implementacji i
badania algorytmów kooperatywnej filtracji,
RWeka, CORElearn, mlr --
zestawy algorytmów modelowania,
Metrics, ROCR, pROC, caret --
miary jakości i procedury oceny modeli,
rmcfs, FSelector -- selekcja atrybutów,
text2vec, tokenizers, tidytext, text, tm, qdap, lsa
-- analiza tekstu,
dplyr, tidyr -- funkcje ułatwiające
przetwarzanie danych, w tym filtrowanie, grupowanie, agregowanie i transformacje,
RODBC -- dostęp do baz danych przez ODBC,
jsonlite -- import plików json,
xlsx, openxlsx -- import/eksport plików
Excel,
lubridate -- pomocnicze funkcje do przetwarzania
dat,
stringi, stringr -- pomocnicze funkcje do przetwarzania
napisów,
fortunes -- sentencje o języku R.
Ładowanie pakietu odbywa się za pomocą funkcji library.
Listę zainstalowanych pakietów można sprawdzić wywołując tę funkcję
bez argumentów. Listę wszystkich nazw (funkcji i zmiennych)
udostępnianych przez załadowany pakiet można sprawdzić wywołując
funkcję ls z argumentem postaci
"package:nazwa_pakietu".
Siła i elastyczność języka R w największym stopniu ujawnia się przy korzystaniu z tradycyjnego interfejsu linii polecenia, istnieją jednak także interfejsy graficzne ułatwiające używanie dostępnych funkcji R, które mogą początkującym pomóc w oswojeniu się z tym środowiskiem (np. Rattle), oraz środowiska deweloperskie (IDE) ułatwiające tworzenie i uruchamianie kodu (np. RStudiom StatET).