R jest
językiem programowania i powszechnie wykorzystywanym środowiskiem open-source
do analizy statystycznej. Obecnie ma ok. 2 mln użytkowników na całym świecie i
udostępnia ponad 4300 pakietów z algorytmami i modelami statystycznymi. Tableau
Desktop może łączyć się z R i korzystać z jego funkcjonalności: funkcji,
bibliotek, pakietów. Umożliwia to w szczególności wykonywanie skomplikowanych
obliczeń, przeprowadzanie testów statystycznych oraz budowę modeli
statystycznych, w oparciu o które możemy prognozować nasze dane czy rozwiązywać
problemy związane z ich klasyfikacją. Połączenie uzyskuje się poprzez pakiet
Rserve, dzięki któremu korzystamy z R za pomocą pól kalkulowanych, a wyniki
zwracane są z powrotem do Tableau i mogą podlegać dalszym analizom czy wizualizacjom.
Tableau Server również może być skonfigurowany do łączenia się z Rserve z
wykorzystaniem narzędzia tabadmin.
Połączenie z R krok po kroku
Konfigurowanie
połączenia należy rozpocząć od pobrania ze strony
wersji R odpowiedniej dla swojego oprogramowania. Opcjonalnie można zainstalować również program RStudio, którego bogatszy interfejs znacznie ułatwia pracę ze środowiskiem R.
Po zainstalowaniu programu R
należy zainstalować pakiet Rserve. Nie trzeba tego robić ręcznie, można wpisać
do konsoli programu R następującą komendę:
install.packages("Rserve")
Niezbędne jest do tego
połączenie z internetem. W następnym kroku zmieniamy katalog roboczy na
katalog, w którym został zainstalowany program R. Należy pamiętać, że ukośniki
w ścieżce podanej jako argument do funkcji setwd() w R powinny być skierowane w
przeciwną stronę, niż w Windowsie.
setwd("C:/Program Files/R/R-3.0.2/bin/x64")
Wczytujemy do R bibliotekę
Rserve, korzystając z komendy
library(Rserve)
oraz ustalamy ścieżkę do
aktualnego R.DLL
Rserve()
Po wywołaniu komendy w konsoli
programu R wyświetli się ścieżka do katalogu, w którym został umieszczony
folder Rserve. Aktualnie jesteśmy połączeni - Rserve musi być zawsze uruchomiony, gdy chcemy uzyskać
połączenie pomiędzy Tableau i R. Możemy uruchomiać go z poziomu konsoli
programu R wywołując trzy ostatnie linijki kodu:
setwd("C:/Program Files/R/R-3.0.2/bin/x64")
library(Rserve)
Rserve()
Niektórym
użytkownikom nieco prostsza może wydawać się druga metoda. Aby z niej korzystać
należy jednorazowo skopiować zawartość katalogu, do którego ścieżka wyświetliła
nam się w konsoli programu R, do katalogu, w którym zainstalowaliśmy program R
(u mnie: C:/Program Files/R/R-3.0.2/bin/x64). Są to trzy pliki: Rserve.dll,
Rserve, Rserve_d . Rserve możemy teraz uruchamiać za pomocą pliku o
nazwie "Rserve", z katalogu, do którego wkleiliśmy pliki. Możemy
utworzyć sobie skrót na pulpicie, aby przyspieszyć pracę. Po ręcznym
uruchomieniu Rserve otworzy się okno poleceń, w których wypisany będzie
komunikat: „Rserve: Ok, ready to answer queries.”. Jeśli chcemy, by połączenie wykonywało się
automatycznie po każdym uruchomieniu systemu Windows, kopiujemy plik Rserve do
folderu Startup.
Po
pierwszym uruchomieniu Tableau Desktop wybieramy z menu programu następujące
opcje:
Wpisujemy nazwę serwera: Localhost.
Teraz możemy przetestować połączenie za pomocą opcji Test Connection. W
odpowiedzi wyświetli się następujący komunikat: „Successfully connected to the Rserve service.”.
Jak korzystać z połączenia z R?
W Tableau
dostępne są cztery funkcje współpracujące ze środowiskiem R, które przyjmują wyniki
obliczeń następujących typów:
- logicznego (boolean),
- całkowitego (integer),
- rzeczywistego (real),
- tekstowego (string).
Jako pierwszy argument
przyjmują one kod R, podany w cudzysłowie (pojedynczym lub podwójnym), a jako kolejne: zmienne z wczytanego
do Tableau zbioru (zmienne liczbowe powinny być zagregowane).
Należy mieć na uwadze, że podwójny cudzysłów użyty
wewnątrz kodu R zostanie przez Tableau potraktowany jako zakończenie sekwencji
kodu R. Używanie pojedynczych cudzysłowów pozwala na obejście tego problemu.
Przykład zastosowania
Jedną
z analiz jaką można przeprowadzić korzystając z R jest analiza skupień,
popularnie nazywana klasteryzacją (ang. clustering). Zaprezentowany przykład
wykonany został na zbiorze danych Iris Data Set, który można pobrać np. ze
strony UCI (Machine Learning Repository):
Zbiór ten składa się z
pięciu zmiennych: Petal.Length, Petal.Width, Sepal.Length, Sepal.Width oraz
Species. Chcemy prognozować gatunek kwiatów grupując je ze względu na
podobieństwo w cechach.
Wynikiem kalkulacji jest wektor liczbowy,
który przyjmuje trzy wartości, ponieważ zmienna Species jest zmienną
kategoryczną o trzech poziomach ("setosa", "versicolor", "virginica").
Po konwersji do typu dyskretnego możemy nanieść wektor Clusters na ikonkę Color
w następującym widoku:
Kwiaty zostały zgrupowane ze względu na gatunek z poprawnością rzędu 89,3%.
KOMENTARZE