niedziela, 19 lipca 2015

Podstawowe narzędzia wspomagające pracę w Rstudio

Na rynku znaleźć możemy wiele aplikacji edytorskich w których zaimplementowano silnik R. Szukanie najlepszego IDE spośród alternatyw jest dosyć proste, bowiem najbardziej popularne RStudio okazuje się być najlepsze i najprostsze w użyciu. Ja sam w R nie piszę zbyt długo, a moje poszukiwania za najlepszym edytorem często kończyły się zawodem po kilku tygodniach użytkowania aplikacji (Emacs z silnikiem R, Eclipse z pluginem StatET i inne mniej znane). Co jest przekonywującego w RStudio? Jest zbudowany tylko dla R z domyślną konfiguracją zawierającą wszystko co potrzebuje mistrz danych. Nie musimy grzebać w ustawieniach żeby uruchomić widok zmiennych, odczytać coś w oknie pomocy, czy zobaczyć jakie pakiety mamy do dyspozycji, wszystko jest nam dane na starcie. Na tym się nie kończą możliwości RStudio, który oferuje dodatkowo kilka pomocnych tricków, a co najbardziej zrewolucjonizowało moją pracę to edycja w trybie vim.
Na chwilę obecną Rstudio jest dla Mnie kompletnym narzędziem, które spełnia prawie wszystkie widzi misie. Poniżej wypisałem podstawowe funkcjonalności, które w pewnej części mogą być wręcz trywialne, zapewniam jednak, że część może okazać się miłym zaskoczeniem.


1. Ładowanie pakietów
Z pewnością znane już każdemu, z obowiązku redaktorskiego prezentuję zakładkę packages, gdzie zaznaczamy lub odznaczamy pakiet będący w bieżącym użyciu. W konsoli wyświetla nam się library(...,lib.loc=...) wskazując, że dany pakiet został załadowany z lokalizaji lib.loc='ścieżka dostępu do bibliotek R'. Ponadto klikając dany pakiet wyświetlimy listę funkcji a dalej ich opis do zapoznania się z możliwościami danej paczki.


2. Zakładka files - orientacja w przestrzeni roboczej .
Zanim rozpoczniemy pracę nad projektem definiujemy sobie folder roboczy za pomocą setwd(), dzięki czemu wczytywanie i zapisywanie plików z tego folderu nie wymusza na nas wpisywania całej ścieżki dostępu, a jedynie nazwę pliku. Jeżeli uznamy za uciążliwe wpisywanie ścieżki do folderu z ręki, zawsze możemy skorzystać z zakładki files>more>Set As Working Directory


Często w trakcie pracy dokonujemy małych modyfikacji w plikach, zmieniamy nazwy, usuwamy, przenosimy do innych folderów. To wszystko możemy wykonać w zakładce files. Klikając w dany plik RStudio otworzy go za pośrednictwem odpowiedniej aplikacji lub otworzy jako nowa zakładka (gdy jest to plik tekstowy).

3. Ładowanie danych
Dane możemy załadować lokalnie z własnego komputera jak również podając bezpośredni URL do pliku zlokalizowanego w internecie. Z zakładki Environment klikamy Import Dataset, a następnie From Web URL...  .


Wpisujemy/wklejamy adres bezpośredni do pliku .csv znajdującego się na stronie football-data.co.uk.

Podajemy nazwę pod jaką będzie widnieć nasz zbiór danych w przestrzeni roboczej. Wczytujemy również nagłówki kolumn (heading=yes) i klikamy import.


Po wykonaniu otrzymujemy potwierdzenie w konsoli że wczytaliśmy plik (plik wczytywany jest lokalnie z folderu tymczasowego po ściągnięciu). Wynik operacji widzimy w oknie zmiennych gdzie mamy już wczytany zbiór danych z 320 wierszami.


4. Przeglądanie obiektów w przestrzeni roboczej.
W zakładce Environment znajdziemy wszystkie obiekty, które stworzyliśmy w trakcie danej sesji. Klikając na ikonkę skoroszytu przy danej zmiennej wywołamy komendę View(obiekt) by w głównym oknie przejrzeć obserwacje. W najnowszej wersji RStudio 0.99.441 deweloperzy uraczyli nas opcjami sortowania, filtrowania zbiorów oraz możliwością wyświetlenia więcej niż 1000 rzędów (w końcu!). Kolejne wiersze są ładowane w trakcie scrollowania, co oznacza że możemy podglądać nawet duże zbiory.
Co również często może okazać się pomocne to podgląd struktury obiektów klikając strzałkę przy nazwie zmiennych rozwinie nam się lista w której widzimy klasę obiektu, kolumny data.frame, długość kolumn, poziomy czynnika itd. Klikając nazwę zmiennej otworzy nam się okno z widokiem (alternatywnie za pomocą konsoli: View()). W najnowszym RStudio możemy dokonywać filtrowania w oknie podglądu, co też znacznie ułatwia sprawę.



5. Edytowanie

Możliwości edytorskie w Rstudio zostały zrewolucjonizowane przez wprowadzenie trybu Vim. Gdybym miał wybierać, które z dzisiejszych udogodnień wnosi najwięcej to bez zawahania wskazałbym właśnie edytowanie przy pomocy Vim. Vim jest edytorem tekstowym wprowadzonym do pisania komend linuxowych, dzięki któremu będziecie mogli śmiało zapomnieć o myszce. Na każdy ruch przewidziany jest jakiś skrót klawiszowy, które opanować można po kilku sesjach skryptowania. Do uruchomienia trybu vim należy wybrać Tools > Global options > Code > odhaczyć Enable vim editing mode.
Od tej pory gdy zobaczymy pogrubiony kursor (migająca pionowa kreska) oznacza, że jesteśmy w trybie normalnym (normal mode). To właśnie w tym trybie będziemy się poruszać, wklejać, kopiować i usuwać tekst. W trybie normalnym nie możemy pisać jak robiliśmy to zwykle wcześniej, aby przejść do trybu edycji wciskamy np. |i| (insert mode). Aby wrócić z powrotem do trybu normalnego wciskamy |ESC|. Trzecim trybem jest tryb komend (command line mode) do którego przechodzimy z trybu normalnego wciskając |:|.
Po włączeniu trybu Vim, jesteśmy w trybie normalnym (gruba migająca pionowa kreska). Jak widzimy możemy kursorami poruszać się po tekście, ale gdy próbujemy coś napisać to kursor zaczyna wykonywać ruchy. To dlatego, że w trybie normalnym nie edytujemy, lecz wykonujemy komendy klawiszowe do wykonania określonej czynności.
Przetrenujmy kilka przykładów na skrypcie umieszczonym pod wpisem:
  1.  Po wciśnięciu |G|, kursor skacze do końca skryptu, następnie wciskamy |gg| po czym kursor przemiszcza się do pierwszej linii.
  2. Pamiętacie oznaczenia początku i końca w Regexp'ie? W Vim jest podobnie - po wciśnięcu |^| kursor ląduje na pierwszym znaku w danej linii, a po wciśnięciu |$| ląduje na ostatnim.
  3.  Wciskając |b| cofamy kursor do początku poprzedniego wyrazu, a wciskając |w| przemieszczamy kursor do początku następnego wyrazu. Podobnie z dużej litery |B| i |W| doprowadzi nas do początku/końca wyrażeń. Różnica między wyrazem, a wyrażeniem jest taka, że wyrazem jest ciąg znaków bez spacji o jednakowym typie znaków (litery albo liczby, albo znaki specjalne). Wyrażenie natomiast jest całym ciągiem znaków bez spacji. Np. "model.arima12" - jest wyrażeniem, wyrazami będą "model", ".", "arima" oraz "12".
  4. Wciskając |v| rozpoczynamy zaznaczanie tekstu, teraz gdy się poruszamy rozciągamy obszar zaznaczenia. Możemy np. w dowolnym miejscu wcisnąć |v|, a następnie przejsć do ostatniej linii |G| zaznaczając tekst od-do końca. Wciskając |y| kopiujemy, a wklejamy wciskając |p|. Treść z zaznaczenia możemy usunąć wciskając |d|.
  5. |D| służy do usunięcia całej linii kodu.
  6. W normal mode ustawiamy kursor na wyrazie model1 w linii xxx, wciskamy |ctrl|+|a| albo |ctrl|+|x| co powoduje, że inkrementujemy lub dekrementujemy numer modelu. Awesome!
  7. Będąc w trybie normalnym wciskamy |:bn|, co w trybie komend oznacza przejście do kolejnej zakładki. Za pomocą |:bp| przenosimy się do poprzedniej zakładki, |:w| zapisuje plik, |:q| zamyka zakładkę, |:wq| zapisuje i zamyka zakładkę.
  8. Może będzie nam się to zdarzyć rzadziej, ale czasami musimy powtarzać daną operację na tekscie kilkaset razy - możemy sobie skrócić cierpienia nagrywając makro. Wystarczy przejść do trybu normalnego |ESC|, a następnie wcisnąć |q|. Od teraz każdy ruch, który wykonamy będzie nagrany, dopuki nie wciśniemy ponownie |q|. Bardzo dobry przykład zaprezentowano tutaj.
Do dalszej nauki proponuję każdemu aby sam mógł sobie przećwiczyć pracę z Vim w trakcie pracy. Gwarantuję, że stracony czas na opanowanie komend wkrótce zaprocentuje! Dodatkowo będziece oznajomieni z dobym edytorem gdy przyjdzie Wam pracować w konsoli Linuxa. Ja przy komputerze powiesiłem sobie jedną z dostępnych w internecie ściągawek, proponuje to samo korzystając np. z tej którą zamieściłem poniżej.
Do szybkiego wprowadzenia warto zajżeć również tutaj.

Linki do ściągawek: vim cheat sheet.

Tryb Vim nie wyczerpuje do końca ułatwień jakie dostarcza nam RStudio, ponieważ oprócz opcji dostarczanych przez Vim, mamy również funkcje wbudowane w samym IDE.

Autouzupełniacz - Wpisując komendy RStudio podpowie nam to co chcemu wpisać, przeszukując dostępne pakiety, funkcje, jak również treść skryptu w którym dokonujemy edycji. Szczególnie przydatne w przypadku trudnych nazw obiektów, albo scieżek dostępu. Na przykład gdy chcemy ustanowić na początku skryptu folder roboczy wpisujemy początek ścieżki posiłkując się |TAB| aby wywołać autouzupełniacza setwd("C:/Dokumenty/|TAB|") - RStudio wyświetli nam dostępne foldery pliki znajdujące się w katalogu. Co jest fajne, że autouzupełniacz sugeruje rezultat nie tylko na podstawie istniejących obiektów ale również na podstawie tekstu występującego w skrypcie. Osobiście za niewygodne uznaję gdy autouzupełniacz wywołuje się sam przy pisaniu kodu, dlatego włączam opcję, która pozwala na wywołanie go tylko za pomocą TAB'a (Tools > Global Options > Code > Completion > Show code completions: Manually (Tab)).

6. Historia komend 

Kolejną funkcją, po którą warto czasem sięgnąć jest wyszukiwanie w historii komend. Przykładowa sytuacja, w której może zajść taka potrzeba to taka w której próbujemy wielu poleceń, orzemy kilkakrotnie skrypt po czym stwierdzamy, że warto by było wrócić do sposobu, którego sobie nie zapisaliśmy. Wystarczy, że w obszarze wyszukiwania wpiszemy fragment poszukiwanej komendy, a wyświetli się nam zbiór pasujących linii kodu. Jako, że narzędzie wyświetli nam tylko jedną linię tego kodu należy kliknąć tą małą strzałkę po prawej stronie, która pozwoli wyświetlić całą komendę jak również sąsiednie polecenia, wykonane w tym samym czasie.





Brak komentarzy:

Prześlij komentarz