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).