W poprzednim wpisie krótko opisałem czym jest R i do czego można go użyć. Dzisiaj zajmiemy się instalacją R a także zrobimy pierwsze kroki w tym środowisku.
Instalacja
Linux
Pod Linuksem można użyć managerów pakietów. Pod Ubuntu szukamy, np. przy użyciu programu synaptic pakietu r-base a następnie go instalujemy. Przy okazji warto zwrócić uwagę, na ilość dodatków które można zainstalować. Pokażą się, jeśli w polu wyszukiwania wpiszemy r-cran
.
Można też przeprowadzić instalację z linii komend:
sudo apt-get install r-cran
W innych dystrybucjach instalacja powinna przebiegać analogicznie. Można też pakiety pobrać ze strony projektu (patrz instalacja pod Windows i Mac).
Windows i MacOS X
Na stronie projeku R, po lewej stronie w menu, znajduje się link CRAN, który prowadzi do listy serwerów lustrzanych z całego świata które oferują nam dostęp do pożądanych przez nas plików. Możemy wybrać serwer leżący w Polsce (np. serwer wrocławski), lub jakikolwiek inny.
Po wybraniu serwera ukaże się strona, na której znajdziemy linki prowadzące do plików z oprogramowaniem na systemy Linux, MacOS X oraz Windows. Podążamy za linkiem właściwym dla naszego systemu operacyjnego, pobieramy pliki i instalujemy,
Pierwsze starcie – czyli R jako kalkulator
Po zainstalowaniu, uruchamiamy pakiet R. Możemy w tym celu użyć pod Linuksem terminala wpisując komendę R
, można też zainstalować RKWard
i tam otworzyć R Console.
Rys 1: RKWard pod Linuksem
Pod MacOS X i Windows można uruchomić interfejs graficzny, klikając w odpowiednią ikonę. Wtedy naszym oczom ukazuje się mniej więcej takie okno:
Rys 2: wersja pod MacOS X
Rys 3: Wersja pod Windows
Na dole, obok znaku zachęty >
mruga kursor, zapraszając nas do działania. Nie nadwerężając więc jego cierpliwości, wpisujemy pierwszą komendę:
> 8*8
i naciskamy enter.
Pojawia się wynik:
[1] 4
Oznaczenie [1]
na razie ignorujemy, obok jak widać pojawił się wynik.
A teraz spróbujmy czegoś odrobinę bardziej złożonego:
> 2^4+6*2/(4+7)
[1] 17.09091
Dla porządku wyjaśnijmy co znaczą poszczególne operatory:
- + dodawanie
- – odejmowanie
- * mnożenie
- / dzielenie
- () nawiasy (Uwaga! Nie używamy nawiasów kwadratowych w tym kontekscie)
Wpiszmy teraz:
> 5.01e6
Otrzymamy:
[1] 5010000
Jak widać R akceptuje też tzw. notację naukową.
Przy warto zauważyć i zapamiętać, że do oznaczenia ułamków dziesiętnych używamy kropki a nie przecinka.
Jeśli wpiszemy na przykład:
> 2*5,5
Otrzymamy komunikat:
Error: unexpected ',' in "2*5,"
Policzmy teraz pierwiastek i silnię:
Najpierw pierwiastek kwadratowy z 4:
> sqrt(4)
[1] 2
Silnia z 4, czyli 4!:
> factorial(4)
[1] 24
Tak właśnie wygląda wywołanie funkcji:
nazwa_funkcji(parametry)
Funkcje to w uproszczeniu fragmenty kodu, które wykonują określone zadania. Funkcja ma swoją nazwę która służy do jej wywołania. Funkcje mogą przyjmować jeden lub więcej argumentów, które umieszczamy w nawiasie, oddzielając je przecinkami. Niektóre funkcje nie przyjmują żadnych argumentów, wtedy nawiasy są puste.
Argumentami mogą być na przykład liczby, na których funkcja przeprowadza następnie operacje.
Wpiszmy teraz polecenie:
> seq(1, 10)
Wynik będzie wyglądał tak:
[1] 1 2 3 4 5 6 7 8 9 10
Funkcja seq() służy do generowania sekwencji liczb. W powyższym przykładzie przyjęła dwa argumenty które, jak łatwo zauważyć, oznaczają początek i koniec sekwencji.
Kolejność wpisywanych liczb ma tu kluczowe znaczenie, zamieniając je miejscami uzyskamy sekwencję odwrotną:
> seq(10, 1)
[1] 10 9 8 7 6 5 4 3 2 1
Gdybyśmy chcieli uzyskać sekwencje składająca się z co trzeciej liczby z zakresu od 1 do 20, moglibyśmy wpisać także trzeci parametr oznaczający wielkość kroku (by):
> seq(1, 20, 3)
[1] 1 4 7 10 13 16 19
Być może bardziej przejrzyste będzie wpisanie:
> seq(1, 20, by=3)
Wtedy znaczenie trzeciego parametru jest bardziej oczywiste.
Oczywiście można w ten sposób oznaczyć wszystkie parametry, w takim przypadku ich kolejność nie ma znaczenia:
> seq(to=20, by=2, from=1)
[1] 1 3 5 7 9 11 13 15 17 19
– No dobrze – mógłbyś zapytać drogi czytelniku mojego bloga – ale skąd mam wiedzieć, jakie parametry przyjmuje dana funkcja i jak się one nazywają? Czy mam je wszystkie pamiętać?
Ależ nie, nie trzeba ich wszystkich pamiętać. Z pomocą przychodzi nam funkcja (a jakże!) help()
.
Wpisz w oknie polecenie:
> help(seq)
W tym wypadku funkcja help() przyjmuje jako argument nazwę funkcji. Otworzy się okienko z opisem działania funkcji i parametrów które przyjmuje. Na końcu można znaleźć przykłady jej zastosowania.
Funkcje, a raczej wyniki ich działania, można używać jako elementów układanki:
> 2+cos(1)^2*12
[1] 5.503119
cos()
to oczywiście funkcja licząca cosinus. Nie będzie zaskoczeniem informacja, że mamy też do dyspozycji funkcje liczące inne funkcje trygonometryczne, np. sin()
, tan()
, acos()
.
Można też zrobić tak:
> seq(1, 10)*2
[1] 2 4 6 8 10 12 14 16 18 20
Na koniec jeszcze jedna praktyczna uwaga. Jeśli chcemy wrócić do któregoś z wcześniejszych poleceń wystarczy wciskać strzałkę w górę na klawiaturze. W ten sposób cofamy się do poprzednich poleceń. Dzięki temu, jeśli np. pomyliliśmy się przy wpisywaniu długiego równania, albo chcemy zmienić w nim liczby, nie musimy wszystkiego klepać od początku. Wystarczy poprawić część polecenia i wcisnąć Enter
;
Jedyny blad autorow to niepowodzenie w wyznaczaniu azymutow gęstości np zalesienia i przeprowadzenia symulacji, jednostajnej rownomiernej tego nie przewidzili to już prosciej symulacje wykonac kiedy punkty są w ruchu.
Nie mam pojęcia jak to się ma do tematu ;-)