R to środowisko do obliczeń statystycznych i wchodzi w skład każdej praktycznie
dystrybucji Linuksa. Zainstalować można go bez
problemu używając yuma, jeżeli już wcześnie nie został zainstalowany domyślnie.
Dokumentację w formacie html odnaleźć można w katalogu /usr/lib/R/html/
.
Emacs ma wsparcie do R w postaci pakietu ESS.
Instalowanie ESS
jest proste: należy rozpakować i dodać do plików startowych Emacsa
następujące dwa wiersze (katalog ~/.emacs-local/ess/lisp
oczywiście należy dopasować do własnych ustawień):
(add-to-list 'load-path "~/.emacs-local/ess/lisp") (require 'ess-site)
Uruchamianie ESS jest jakby nieco mniej oczywiste; być może nawet to
co opisałem poniżej jest nieoptymalne. Startuję R z wnętrza Emacsa za
pomocą M-x R
Enter. Zostanie wyświetlone
w minibuforze pytanie o katalog roboczy, np.:
ESS [S(R): R] starting data directory ...
Należy wybrać odpowiedni katalog. Po pewnej chwili Emacs przejdzie
do bufora *R*
, który umożliwia interaktywną pracę
z R. W buforze *R*
można działać w środowisku R z wnętrza
Emacsa dzięki czemu pracuje się wygodniej: działa dopełnienie
(Tab
) oraz help (C-c C-v
). Tyle, że w
buforze *R*
polecenia R i wyniki obliczeń są przemieszane
i szybko można się pogubić. Lepiej pisać program (skrypt) R w osobnym
buforze a wyniki oglądać w buforze *R*
(ogólnie
*R:numer-procesu*
, jeżeli działamy z więcej niż
jednym skryptem, tj. dla drugiego skryptu zostanie utworzony bufor
*R:2*
, dla trzeciego *R:3*
, itd.). Aby to
osiągnąć należy otworzyć (nowy) plik za pomocą standardowego polecenia
C-x C-f
. Plik powinien mieć rozszerzenie
.r
. Bufor przejdzie do trybu ESS co zostanie
zasygnalizowane pojawieniem się napisu ESS w wierszu trybu
(modeline).
W tym buforze także działa pomoc (C-c C-v
)
i dopełnianie (C-c C-Tab
). Pojedynczy wiersz ze skryptu R można uruchamiać
za pomocą ess-eval-line
(C-c C-j
; uwaga: polecenia podzielone
na wiersze wymagają naciśnięcia C-c C-j
dla każdego wiersza); cały blok
poleceń zaś za pomocą ess-eval-region
(C-c C-r
).
Drobna niedogodność
to przechodzenie pomiędzy różnymi oknami: tematów pomocy, R
oraz bufora ze skryptem R (ESS otwiera/zamyka okna mało ,,intuicyjnie'').
Ponieważ skrypty R są krótkie dobrym pomysłem jest podział ekranu na pół
(C-x 2
) i wyświetlanie w drugim oknie
bufora *R*
.
Prosty przykład wykorzystania R do określenia związku między poziomem korupcji a sposobem głosowania w sprawie zaakceptowania przez ISO specyfikacji OOXML można znaleźć w Corrupt countries were more likely to support the OOXML document format (Kai Puolamäki). Rysunek obok pokazuje wykonanie skryptu R z ,,wnętrza'' Emacsa (jak widać nawet okno zawierające histogram też się ładnie wyświetliło).