pozwala na tworzenie i upowszechnianie pakietów implementujących nowe funkcjonalności. Obecnie dostępnych jest blisko 1000 pakietów do różnorodnych



Podobne dokumenty
Modelowanie rynków finansowych z wykorzystaniem pakietu R

Instalacja Pakietu R

1. Operacje na plikach i katalogach Chcąc przeprowadzić analizę danych należy załadować/wczytać dane do R, a wyniki z pewnością chcemy zapisać.

1. Operacje na plikach i katalogach Chcąc przeprowadzić analizę danych należy załadować/wczytać dane do R, a wyniki z pewnością chcemy zapisać.

Plan Ćwiczeń. 3) znajdowanie i zmiana kartoteki roboczej polecenia getwd(), setwd()

Wprowadzenie do Pakietu R dla kierunku Zootechnika. Dr Magda Mielczarek Katedra Genetyki Uniwersytet Przyrodniczy we Wrocławiu

-Instalacja R: -Instalacja RStudio:

Diary przydatne polecenie. Korzystanie z funkcji wbudowanych i systemu pomocy on-line. Najczęstsze typy plików. diary nazwa_pliku

1. Indeksy/indeksowanie : Do elementów wektora, list, macierzy czy ramek, można się odwołać na kilka sposobów.

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

Metody numeryczne Laboratorium 2

Niezwykłe tablice Poznane typy danych pozwalają przechowywać pojedyncze liczby. Dzięki tablicom zgromadzimy wiele wartości w jednym miejscu.

LABORATORIM BIOINFORMATYKI

Wprowadzania liczb. Aby uniknąć wprowadzania ułamka jako daty, należy poprzedzać ułamki cyfrą 0 (zero); np.: wpisać 0 1/2

AKADEMIA MORSKA W SZCZECINIE WI-ET / IIT / ZTT. Instrukcja do zajęc laboratoryjnych nr 1 AUTOMATYZACJA I ROBOTYZACJA PROCESÓW PRODUKCYJNYCH

UNIWERSYTET RZESZOWSKI KATEDRA INFORMATYKI

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki

Zanim zaczniemy GNU Octave

JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania.

MATLAB Z3. Rafał Woźniak. Warsaw, Faculty of Economic Sciences, University of Warsaw

Podstawy programowania skrót z wykładów:

Cw.12 JAVAScript w dokumentach HTML

Podstawy i języki programowania

System imed24 Instrukcja Moduł Analizy i raporty

Mathcad c.d. - Macierze, wykresy 3D, rozwiązywanie równań, pochodne i całki, animacje

Systemy operacyjne. System operacyjny Linux - wstęp. Anna Wojak

INSTRUKCJA OTWIERANIA PLIKU DPT (data point table)

IBM SPSS Statistics Wersja 22. Linux - Instrukcja instalacji (licencja autoryzowanego użytkownika)

Politechnika Poznańska Wydział Budowy Maszyn i Zarządzania

Spis treści. I. Skuteczne. Od autora... Obliczenia inżynierskie i naukowe... Ostrzeżenia...XVII

1 Podstawy c++ w pigułce.

epuap Archiwizacja w Osobistym Składzie Dokumentów

Bash - wprowadzenie. Bash - wprowadzenie 1/39

LABORATORIUM 3 ALGORYTMY OBLICZENIOWE W ELEKTRONICE I TELEKOMUNIKACJI. Wprowadzenie do środowiska Matlab

Przykład 1 -->s="hello World!" s = Hello World! -->disp(s) Hello World!

Powtórka algorytmów. Wprowadzenie do języka Java.

Laboratorium Wstawianie skryptu na stroną: 2. Komentarze: 3. Deklaracja zmiennych

Kier. MTR Programowanie w MATLABie Laboratorium

Programowanie obiektowe

Rys.2.1. Trzy warstwy stanowiące podstawę popularnego podejścia w zakresie budowy stron internetowych [2]

Powtórka algorytmów. Wprowadzenie do języka Java.

Instrukcja importu deklaracji pacjentów. do dreryka

jest dostępne na różne systemy operacyjne. Niniejsza instrukcja opisuje podstawowe operacje i opcje niezbędne do rozpoczęcia pracy w tym programie.

Programowanie w języku Python. Grażyna Koba

2. Tablice. Tablice jednowymiarowe - wektory. Algorytmy i Struktury Danych

Przypomnienie: Ćwiczenie 1.

SUBIEKT GT IMPORT XLS Towarów

Języki skryptowe w programie Plans

Blockly Kodowanie pomoc.

Instrukcja obsługi DHL KONWERTER 1.6

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka

MentorGraphics ModelSim

Włączanie/wyłączanie paska menu

Instrukcja obsługi Multiconverter 2.0

wersja 1.0 ośrodek komputerowy uj cm ul. mikołaja kopernika 7e, Kraków tel

Dodatki. Dodatek A Octave. Język maszyn

Pisząc okienkowy program w Matlabie wykorzystujemy gotowe obiekty graficzne, lub możemy tworzyć własne obiekty dziedzicząc już zdefiniowane.

Otwórz R. Zmień katalog roboczy za pomocą File/Change Dir. Wczytaj plik przypisując go obiektowi o nazwie students:

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

utworz tworzącą w pamięci dynamicznej tablicę dwuwymiarową liczb rzeczywistych, a następnie zerującą jej wszystkie elementy,

Programowanie: grafika w SciLab Slajd 1. Programowanie: grafika w SciLab

Elementy metod numerycznych - zajęcia 9

Obliczenia w programie MATLAB

Nagrywamy podcasty program Audacity

Matlab Składnia + podstawy programowania

Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane

Ustalanie dostępu do plików - Windows XP Home/Professional

Programowanie w języku C++ Grażyna Koba

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka

Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie.

1 Przygotował: mgr inż. Maciej Lasota

Autor: dr inż. Katarzyna Rudnik

IBM SPSS Statistics Wersja 22. Linux - Instrukcja instalacji (licencja wielokrotna)

Nagrywanie Makr. Na karcie Dostosowywanie Wstążki zaznaczamy kartę Deweloper.

Podstawowe operacje i rodzaje analiz dostępne w pakiecie Statistica

WOJEWÓDZTWO PODKARPACKIE

1. Wprowadzenie do oprogramowania gretl. Wprowadzanie danych.

Podstawy obsługi pakietu GNU octave.

5. Bazy danych Base Okno bazy danych

przedmiot kilka razy, wystarczy kliknąć przycisk Wyczaruj ostatni,

Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach?

Przewodnik instalacji i rozpoczynania pracy. dla DataPage+ 2012

System operacyjny UNIX Ćwiczenie 1. Podstawowe polecenia systemu Unix

Podstawy JavaScript ćwiczenia

Viatoll Calc v1.3. Viatoll Calc. Instrukcja użytkownika. Strona 1

Przetwarzanie sygnałów

Podstawy Programowania C++

Instrukcja importu przesyłek. z Menedżera Sprzedaży do aplikacji Webklient

IBM SPSS Statistics Wersja 22. Windows - Instrukcja instalacji (licencja autoryzowanego użytkownika)

Instrukcja. importu dokumentów. z programu Fakt do programu Płatnik. oraz. przesyłania danych do ZUS. przy pomocy programu Płatnik

Język JAVA podstawy. wykład 2, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

INSTRUKCJA OBSŁUGI. Program ProCELL. Wersja: 1.15

JAVAScript w dokumentach HTML (1)

1 Podstawy c++ w pigułce.

Piotr Dynia. PowerPivot. narzędzie do wielowymiarowej analizy danych

Visual Basic w programie Excel

Matlab, zajęcia 3. Jeszcze jeden przykład metoda eliminacji Gaussa dla macierzy 3 na 3

SZKOLENIE WPROWADZENIE DO R UNIWERSYTET SZCZECIŃSKI al. Papieża Jana Pawła II nr 22a Szczecin

Zawartość. Wstęp. Moduł Rozbiórki. Wstęp Instalacja Konfiguracja Uruchomienie i praca z raportem... 6

Transkrypt:

0.1 O projekcie R R to nazwa języka programowania oraz nazwa platformy programistycznej wyposażonej w interpretator języka R. W platformie tej zaimplementowano wiele metod statystycznych, przez co często nazywana jest platformą do wykonywania analiz statystycznych. Jej możliwości są jednak znacznie większe, wystarczy wymienić automatyczne generowanie raportów, wysyłanie maili czy renderowanie trójwymiarowych animacji. Język R jest językiem interpretowanym a nie kompilowanym. Kolejne komendy mogą być podawane linia po linii lub też wykonywane jako skrypt (plik tekstowy z listą komend do wykonania). Skrypty można udostępniać w postaci kodów źródłowych, można je wykonywać niezależne od platformy sprzętowej. Wiele osób uważa (często słusznie), że języki interpretowane są wolne i wymagają dużo pamięci, jednak obecne komputery są szybkie i mają dużo pamięci więc w standardowych zastosowaniach nie należy się tym przejmować. Osoby wolące okienkowe interfejsy użytkownika, w których można wyklikać wyniki mogą skorzystać z kilku darmowych GUI do platformy R (np. z pakietu Rcmdr). Zdecydowanie jednak polecam przełamanie tej niechęci, przygotowywanie skryptów jest proste i umożliwia prostą automatyzacje pracy. R jest projektem GNU opartym o licencje GPL GNU. W uproszczeniu oznacza to, iż jest w zupełności darmowy do wszystkich zastosowań. R jest podobny do języka S opracowanego w laboratoriach Bell a, był bowiem po części na tym języku wzorowany. Znacząca cześć programów w języku S będzie działała też na platformie R. Osoby znające inne popularne platformy np. Matlaba, Octave, S+, SPSS, SAS a itp. nie będą miały większych problemów by zacząć używać języka R. Istnieje wiele dokumentów prezentujących różnice pomiędzy danym językiem a R em ich lista znajduje się np. w sekcji gettingstarted:translations w Rwiki. Platforma R wyposażona jest w świetną dokumentacje, dostępną w postaci dokumentów PDF lub stron html. Aktualnie dokumentacja ta jest angielskojęzyczna, jednak trwają prace nad różnymi lokalizacjami. Cztery główne (ale nie jedyne) zalety platformy R, dzięki którym deklasuje ona konkurencje to: pozwala na tworzenie i upowszechnianie pakietów implementujących nowe funkcjonalności. Obecnie dostępnych jest blisko 1000 pakietów do różnorodnych zastosowań, pozwala na wykonywanie funkcji z bibliotek przygotowywanych w innych językach (C, C++, Fortran) oraz wykonywanie funkcji w R z poziomu innych języków (Java, C++, C i wiele innych), jest w zupełności darmowa do wszelkich zastosowań (również większość pakietów jest darmowych i dostępnych w ramach licencji GNU GPL lub GNU 1

GPL 2.0), można wygenerować wykresy o wysokiej jakości co jest bardzo istotne przy prezentacji wyników. Jedną z niewielu rzeczy których nie można zrobić na platformie R jest cappucino. W internecie i księgarniach dostępnych jest wiele angielskojęzycznych źródeł poświęconych R owi i analizie danych w systemie R, listę najpopularniejszych można znaleźć na stronach: popularne manuale do R a http://cran.r-project.org/manuals.html, R wiki http://wiki.r-project.org/rwiki/, książki o analizie danych w R http://www.r-project.org/doc/bib/r-books.html. 2

0.2 Instalacja 0.2.1 Instalacja środowiska R jest dostępny w postaci źródłowej oraz skompilowanej dla większości systemów operacyjnych, w tym wszystkich dystrybucji Linuxa, Unixa dla wersji Windowsa począwszy od Windowsa 95 a nawet na MacOSa. Instalacja jest prosta, wystarczy wybrać jeden z mirrorów z plikiem instalacyjnym, ściągnąć, uruchomić ten plik a następnie postępować zgodnie z instrukcjami. Adresy mirrorów znaleźć można pod adresem http://cran.r-project.org/mirrors.html). Szczegółową instrukcję instalacji można znaleźć pod adresem http://cran.r-project.org/doc/manuals/r-admin.pdf. W dalszej części będzie opisywana Windowsowa wersja R a (osoby korzystające z Linuxa z pewnością świetnie radzą sobie z korzystaniem z manuali). Windowsową wersję 2.4.1 można ściągnąć z wrocławskiego serwera http://r.meteo.uni.wroc.pl/bin/windows/base/ (należy uruchomić plik R-2.4.1-win32.exe). Osoby używające platformy R do bardzo wymagających obliczeniowo analiz powinny raczej używać Linuxowej lub Unixowej wersji platformy R z uwagi na wydajniejsze zarządzanie pamięcią. 0.2.2 Instalacja pakietów Funkcjonalności dostępne w platformie R umieszczone są w pakietach. Platforma R instalowana jest wraz z podstawowym ich zbiorem pozwalającym na wykonywanie prostych analiz. Kolejne pakiety można zainstalować po uruchomieniu systemu R poleceniem i n s t a l l. packages ( nazwa. pakietu, dependencies = TRUE) lub wybierając z menu opcje packages\install package(s)... 0.2.3 Korzystanie z pakietów Zainstalowanie pakietu oznacza, że implementacja odpowiednich funkcji znajduje się na dysku twardym komputera. Aby móc skorzystać z tej funkcjonalności należy ją załadować (włączyć). Po każdym uruchomieniu platformy R, ładowane są pakiety podstawowe takie jak base, graphics, stats. Aby skorzystać z dodatkowych funkcji lub zbiorów danych należy załadować pakiet w którym się one znajdują (zakładamy, że pakiety te zostały już zainstalowane). Pakiety ładuje się poleceniem library ( nawa. p a k i e t u ) Na dzień dzisiejszych dostępnych jest blisko 1000 pakietów. W tym zbiorze trudno czasem odnaleźć pakiet z interesującą nas funkcjonalnością. Poniżej zamieszczono listę najpopularniejszych (będzie aktualizowana w trakcie semestru) 3

rgl - pakiet z funkcjami do grafiki 3D, Rcmdr - pakiet z GUI pozwalającym na przeprowadzenie większości podstawowych statystyk bez znajomości nazw funkcji, stats - pakiet z większością podstawowych funkcji statystycznych, graphics - pakiet z funkcjami do rysowania wykresów. 4

0.3 Pierwsze uruchomienie Po zainstalowaniu w wybranym miejscu na dysku utworzony zostanie katalog R-2.4.1 (lub inny w zależności od instalowanej wersji), a w nim podkatalog bin z plikami wykonywalnymi. Platformę R można uruchomić w trybie wsadowym wykonując plik R.exe lub też w trybie z prostym GUI okienkowym wykonując plik Rgui.exe. Wybór trybu uruchomienia proponujemy oprzeć na prostej zasadzie, jeżeli nie wiesz czym te tryby się różnią to uruchom wersje z GUI. Rysunek 1: Okno powitalne po uruchomieniu pliku Rgui.exe. Po uruchomieniu tej wersji pokaże się okienko takie jak na Rys 1. Znak > to znak zachęty. Oznacza on, że platforma R jest gotowa do realizacji kolejnego polecenia. Jeżeli linia rozpoczęta jest znakiem + to znaczy, że polecenie wpisane w poprzedniej linii nie zostało jeszcze zakończone i platforma czeka na jego część dalszą zanim zostanie ono wykonane (np. rozpoczęta jest pętla, otwarty jest nawias lub wpisywany jest łańcuch znaków). Pierwsze polecenie, które warto przećwiczyć to q ( ) czyli zamknięcie platformy R. Po wykonaniu tego polecenia zostaniemy zapytani, czy zachować aktualny stan środowiska a następnie platforma zostanie zamknięta. Jak to zostało zaznaczone w poprzedniej sekcji platforma R wyposażona jest w bogaty system pomocy. Aby z niej skorzystać można użyć następujących funkcji help() - wyświetla stronę powitalną systemu pomocy, 5

help(nazwa.funkcji) lub?nazwa.funkcji - wyświetla informacje o danej funkcji. Kolejne sekcje zawierają zwięzły opis, listę argumentów, objaśnienie poszczególnych argumentów, szczegółowy opis funkcji, literaturę, odnośniki do innych funkcji oraz przykłady użycia, args(nazwa.funkcji) - wyświetla listę argumentów dla danej funkcji, example(nazwa.funkcji) - uruchamia skrypt z przykładowymi wywoływaniami poszczególnych funkcji, na dobry początek proszę sprawdzić example(plot), help.search(slowo.kluczowe) - przegląda opisy funkcji znajdujących się w zainstalowanych pakietach i wyświetla te w których znaleziono zadane slowo.kluczowe. W liście wyników znajduje się również informacja w którym pakiecie znajdują się znalezione funkcje. 6

0.4 Podstawy składni języka R 0.4.1 Obiekty Wszystko czym można operować w języku R jest obiektem. Obiekty można podzielić (nie wdając się w formalne szczegóły) na kilka typów. Liczba. Ten typ nie wymaga komentarza. Dozwolona jest notacja naukowa (np. 2.5e3), kropką dziesiętną jest kropka. Łańcuch znaków są rozpoczynane znakiem lub " oraz kończone tym samym znakiem. Typ logiczny. Obiekty tego typu przechowują jedną z dwóch wartości. Logiczna prawda to T lub TRUE, logiczny fałsz to F lub FALSE. Wektor to uporządkowany zbiór obiektów tego samego typu. Konstruktorem wektora jest funkcja c(). Przykładowa konstrukcja wektora trzech liczb c ( 1, 3, 4 ) Lista to uporządkowany zbiór elementów. Elementy listy mogą mieć różne typy. Elementy listy mają nazwy. Konstruktorem listy jest funkcja list(). Przykładowa konstrukcja listy czterech obiektów to l i s t ( name=c ( Jan, Tomasz ), surname= Kowalski, age =25, married=t) Macierz. Konstruktorem macierzy dwuwymiarowej jest funkcja matrix(). Przykładowa macierz o wymiarach 4x2 wypełniona zerami może być skonstruowana poleceniem matrix ( 0, 4, 2 ) Można też konstruować macierze o większej liczbie wymiarów, o tym w kolejnych sekcjach. Ramka danych to lista wektorów o tej samej długości. Równoważnie może być wyświetlana jako macierz, w której elementy w kolumnie są tego samego typu. Konstruktorem jest funkcja data.frame(). Przykładowa ramka to data. frame ( i d=c ( 1 0 0, 1 0 1, 1 0 2 ), age=c ( 2 5, 2 1, 2 2 ), male=c (T, T, F) ) Typ wyliczeniowy. Przydatny do przechowywania wartości występujących na kilku poziomach (np. płeć występuje na dwóch poziomach, tz. może przyjmować dwie wartości). Konstruktorem jest funkcja factor(). Przykładowy wektor trzech elementów typu wyliczeniowego z dwoma poziomami to 7

factor ( c ( s i e r z a n t, kapitan, s i e r z a n t ) ). Funkcja. Jej konstruktorem jest funkcja function. Więcej o funkcjach w kolejnych sekcjach. 0.4.2 Konwersja Najczęstsze konwersje to zamiana na typ znakowy (funkcja as.character) lub na typ liczbowy (funkcja as.numeric). Konwertować można złożone struktury takie jak lista lub macierz, w tym przypadku konwertowany jest każdy element listy lub macierzy. Konwertować można też strukturę obiektu, np. funkcjami as.matrix, as.list, as.logical. Uwaga!!! Konwertując etykietki typu wyliczeniowego na typ liczbowy należy być ostrożnym, zaskakującym może być wynik takiej konwersji, np. > as. numeric ( factor ( c ( 2,2))) [ 1 ] 1 2 Bardziej oczekiwany wynik uzyskamy konwertując po drodze dany obiekt na typ znakowy > as. numeric ( as. character ( factor ( c ( 2,2)))) [ 1 ] 2 2 0.4.3 Zmienne Nazwa zmiennej powinna rozpoczynać się literą, może składać się z liter, cyfr lub symbolu kropki. Istotna jest wielkość liter, a więc zmienne x i X to dwie różne zmienne. Do zmiennej przypisać można wartość jednym z trzech operatorów przypisania -> przypisuje wartość znajdującą się z lewej strony do zmiennej po prawej stronie <- przypisuje wartość znajdującą się z prawej strony do zmiennej po lewej stronie = jak wyżej, raczej nie jest polecany. Sprawdź co się stanie w wyniku wykonania poniższych instrukcji c ( 1 3, 13) > zmienna. z. kropka imie Ola i = 4 8

0.4.4 Indeksy Do elementów wektorów, list, macierzy i ramek danych możemy się odwoływać w następujący sposób zmienna[zakres], zmienna jest listą(wektorem), zakres jest wektorem liczb całkowitych lub jedną liczbą całkowitą. W tym przypadku zwracana jest lista(wektor) zawierająca wybranie elementy. Jeżeli zakres to wektor liczb ujemnych to zwrócone będą wszystkie elementy z listy(wektora) poza pozycjami określonymi przez wartości absolutne z zakres > wektor 1 : 1 0 > wektor [ 1 ] 1 2 3 4 5 6 7 8 9 10 > wektor [ 1 : 3 ] [ 1 ] 1 2 3 > wektor [ c( 1, 3, 5)] [ 1 ] 2 4 6 7 8 9 10 zmienna[zakres1,zakres2]. zmienna jest macierzą(ramką danych). Wybierana jest macierz(ramka danych) o wskazanych indeksach. Jeżeli któryś z zakresów nie będzie podany, zostaną wybrane wszystkie pozycje w danym wierszu/kolumnie > macierz matrix ( 1 : 4, 2, 2 ) > macierz [, 1 ] [, 2 ] [ 1, ] 1 3 [ 2, ] 2 4 > macierz [ 1, ] [ 1 ] 1 3 > macierz [ 1, 1] [ 1 ] 4 zmienna$watosc1. zmienna to lista lub ramka danych, zwracany jest element listy (lub kolumna z ramki danych) o nazwie watosc1 > osobnik l i s t ( name=c ( Jan, Tomasz ), surname= Kowalski, age =25, married=t) > osobnik $name [ 1 ] Jan Tomasz > osobnik [ [ 2 ] ] [ 1 ] Kowalski zmienna[[indeks1]]. zmienna to wektor, lista, macierz lub ramka danych. Wybierany jest jeden element o indeksie indeks1. > macierz matrix ( 1 : 4, 2, 2 ) > macierz [ [ 2 ] ] [ 1 ] 2 > osobnik l i s t ( name=c ( Jan, Tomasz ), surname= Kowalski, age =25, married=t) > osobnik [ [ 1 ] ] [ 1 ] Jan Tomasz Przydatną funkcją jest which(), która zwraca indeksy obiektu spełniające zadany warunek logiczny. 9

0.4.5 Sekwencje Sekwencje liczb całkowitych można generować używając operatora : lub funkcji seq(). > 2:2 [ 1 ] 2 1 0 1 2 > seq ( 1 0, 5 0,by=10) [ 1 ] 10 20 30 40 50 Uwaga!!! Należy być ostrożnym korzystając z sekwencji liczb rzeczywistych. Problemy mogą pojawić się nawet w tak prostych sytuacjach > v seq ( 0. 7, 0. 8, by=0.1) > v [ 1 ] 0. 7 0. 8 > v == 0. 8 [ 1 ] FALSE FALSE 0.4.6 Operatory Poniżej przedstawiono najpopularniejsze operatory języka R. Jeżeli zachodzi taka potrzeba, to można również definiować własne operatory (o czym jeszcze będzie mowa). +, -, *, /, ^ standardowe operatory arytmetyczne. Oba argumenty powinny mieć taki sam wymiar lub jeden z argumentów powinien być liczba, %x% iloczyn kronekera dwóch macierzy, %% reszta modulo z dzielenia, %/% dzielenie całkowite, %*% iloczyn dwóch macierzy, <, ==, >, <=, >=,!= standardowe operatory logiczne,! negacja, &, &&,, logiczny iloczyn oraz logiczna suma. Jeżeli chcemy wyznaczyć logiczną sumę(iloczyn) wszystkich elementów wektora można wykorzystać funkcję any() lub all(). Operatory & i służą do wykonywania operacji na listach lub wektorach, podczas gdy && i na pojedynczych wartościach. Warto przeanalizować poniższy przykład. > l u b i e. s t a t y s t y k e = c ( a l a=f, o l a=t, ewa=t) > l u b i e. prowadzacego = c ( a l a=t, o l a=t, ewa=f) > l u b i e. s t a t y s t y k e & l u b i e. prowadzacego a l a o l a ewa FALSE TRUE FALSE > l u b i e. s t a t y s t y k e && l u b i e. prowadzacego 10

[ 1 ] FALSE > l u b i e. s t a t y s t y k e l u b i e. prowadzacego a l a o l a ewa TRUE TRUE TRUE > l u b i e. s t a t y s t y k e l u b i e. prowadzacego [ 1 ] TRUE 0.4.7 Komentarze Język R, jak każdy przyzwoity (i wiele nieprzyzwoitych) języków programowania umożliwia komentowanie fragmentów kodu. Znakiem komentarza jest #, interpretator ignoruje ten znak i wszystkie po nim występujące do końca linii. 11

0.5 Odczytywanie i zapisywanie danych Zanim będzie można przystąpić do analiz należy wczytać dane. Również po wykonaniu analiz dobrze jest móc zapisać uzyskane wyniki. Poniższe sekcje opisują jak wczytywać dane z plików tekstowych lub importować z popularnych formatów. 0.5.1 Odczytywanie i zapisywanie plików tekstowych Funkcje odczytujące i zapisujące do plików mają wiele parametrów pozwalających na określenie kodowania, znaku separatora, kropki dziesiętnej, typu odczytywanych danych itp. Aby nie utonąć w szczegółach przedstawione są najpopularniejsze przykłady użycia. Zainteresowani oraz potrzebujący powinni potrafić już uruchomić pomoc dla danej funkcji i sprawdzić jakie są inne parametry. Odczytać wektor liczb rozdzielonych białymi znakami można poleceniem wektor. l i c z b = scan ( nazwa. p l i k u ) Jeżeli chcemy odczytać wektor łańcuchów liczb, rozdzielonych przecinkami użyjemy polecenia wektor. lancuchow = scan ( nazwa. p l i k u, what= c h a r a c t e r, sep=, ) Jeżeli w pliku znajduje się macierz liczb to wygodnie jest ją odczytać następującym poleceniem macierz = read. table ( nazwa. p l i k u ) Jeżeli w pliku umieszczone są też informacje o nazwach kolumn i wierszy, a elementy macierzy rozdzielane są znakami tabulacji, to właściwe będzie użycie następującego polecenia macierz = read. table ( nazwa. p l i k u, header=t, sep= \ t ) Wektor możemy zapisać do pliku korzystając z funkcji cat(), np. następująco cat ( wektor, f i l e= nazwa. p l i k u, append=f) Jeżeli zapisać chcemy macierz lub ramkę danych oddzielając kolejne elementy tabulacją to lepiej jest skorzystać z funkcji write.table() write. table ( macierz, f i l e= nazwa. p l i k u, sep= \ t ) Uwaga!!! Nazwa pliku może zawierać ścieżkę dostępu, może być też adresem URL. 0.5.2 Import i eksport danych z Excel a Najwygodniej importować dane z Excela zapisując je w formacie csv a następnie odczytywać lub zapisywać funkcjami macierz = read. csv ( f i l e= nazwa. p l i k u. csv, dec=, ) write. csv ( macierz, f i l e= nazwa. p l i k u. csv, dec=, ) Należy pamiętać że Excel z polską lokalizacją stosuje, jako kropkę dziesiętną. 12

0.5.3 Import i eksport danych ze schowka Dostęp do schowka uzyskuje się podając clipboard jako nawę pliku. Tak więc instrukcja wektor = scan ( c l i p b o a r d ) wpisze do zmiennej wektor zawartość schowka, a polecenie write. csv ( macierz, c l i p b o a r d ) zachowa w schowku wartości zmiennej macierz w formacie pliku csv. 0.5.4 Import danych z SPSS a Aby zaimportować dane z SPSS a potrzebny jest pakiet Hmisc. Do importu danych służy funkcja spss.get(). Przykładowa sesja library ( Hmisc ) ramka. danych = s p s s. get ( nazwa. p l i i k u. sav ) 0.5.5 Import danych z pakietów Niektóre pakiety poza funkcjami udostępniają również zbiory danych. Dostęp do tych zbiorów uzyskuje się stosując funkcję data(). Przykładowe odczytanie danych z pakietu BSDA library (BSDA) data ( C o f f e e ) head ( C o f f e e ) 0.6 Zapisywanie wykresów Platforma R umożliwia zapisywanie wykresów do różnych formatów, w tym PNG, BMP, JPG, PDF i PS. Jeżeli chcemy zapisać do pliku już wyświetlony na ekranie wykres, należy uaktywnić okno z wykresem (nazwane R graphics), a następnie z menu wybrać File\Save as. Wykresy można też zapisywać do pliku automatycznie. Funkcje png(), bmp(), jpg(), pdf() przekierowują domyślne wyjście dla grafiki do pliku. Funkcja dev.off() powoduje zamknięcie przekierowania i zapisanie wykresu pod wskazaną nazwą. Przykład poniżej png ( obrazek. png, width = 640, h e i g h t = 480) example( plot ) dev. o f f ( ) 13

0.7 Przykładowa sesja - przećwiczyć na zajęciach # z r o b m y k i l k a z m i e n n y c h wektor 1 : 1 0 0 macierz matrix ( 1 : 1 0 0, 1 0, 1 0 ) fragment sample ( wektor, 5 0,T) ramka read. csv ( http : // semestr. p l / c o g i t o /download/drzewka. csv, header=t, sep= \ t ) # w y s w i e t l m y t e z m i e n n e fragment ramka ramka$waga s t r ( ramka ) head ( ramka, 3 ) ramka [ ramka$ p l e c== M, ] colnames ( ramka ) # p o l i c z m y c o s BMI ramka$waga/( ramka$ wzrost /100)ˆ2 ramka$bmi = BMI # d o w i e d z m y s i e c z e g o s o f u n k c j i h i s t? hist args ( hist ) # n a r y s u j m y c o s hist ( fragment ) hist ( ramka$wiek, xlab= Wiek ) plot ( ramka$waga, ramka$ wzrost /100, xlim=c ( 5 0, 1 0 0 ), ylim=c ( 1. 5, 2 ), xlab= waga [ kg ], ylab= wzrost [m], type= p, lwd=2, col= red ) l s ( ) attach ( ramka ) l s ( ) e t y k i e t k i = paste ( ramka$imie, ramka$nazwisko ) identify ( waga, wzrost /100, e t y k i e t k i ) # a t e r a z uruchamiamy R commandera library ( Rcmdr) # demo m o z l i w o s c i p a k i e t u g r a p h i c s demo( graphics ) library ( r g l ) demo( r g l ) # k i l k a podsumowan summary( fragment ) summary( ramka ) 14

# c o t o z a p o k o j? add. box function ( x1, x2, y1, y2, z1, z2, col ) { r g l. quads ( c ( x1, x1, x2, x2 ), c ( y1, y2, y2, y1 ), c ( z1, z1, z1, z1 ), col ) r g l. quads ( c ( x1, x1, x2, x2 ), c ( y1, y2, y2, y1 ), c ( z2, z2, z2, z2 ), col ) r g l. quads ( c ( x1, x1, x1, x1 ), c ( y1, y2, y2, y1 ), c ( z1, z1, z2, z2 ), col ) r g l. quads ( c ( x2, x2, x2, x2 ), c ( y1, y2, y2, y1 ), c ( z1, z1, z2, z2 ), col ) r g l. quads ( c ( x1, x2, x2, x1 ), c ( y1, y1, y1, y1 ), c ( z1, z1, z2, z2 ), col ) r g l. quads ( c ( x1, x2, x2, x1 ), c ( y2, y2, y2, y2 ), c ( z1, z1, z2, z2 ), col ) } r g l. open ( ) r g l. quads ( c ( 0. 0 1, 0. 0 1, 4. 5, 4. 5 ), c ( 0, 2. 5, 2. 5, 0 ), c ( 2. 2 1, 2. 2 1, 2. 2 1, 2. 2 1 ), blue, alpha =0.5) r g l. quads ( c ( 0. 0 1, 0. 0 1, 4. 5, 4. 5 ), c ( 0, 2. 5, 2. 5, 0 ), c ( 0.01, 0.01, 0.01, 0.01), blue, alpha =0.5) r g l. quads ( c ( 4. 5, 4. 5, 4. 5, 4. 5 ), c ( 0, 2. 5, 2. 5, 0 ), c ( 0. 0 1, 0. 0 1, 2. 2 1, 2. 2 1 ), blue, alpha =0.5) r g l. quads ( c ( 0.01, 0.01, 0.01, 0.01), c ( 0, 2. 5, 2. 5, 0 ), c ( 0. 0 1, 0. 0 1, 2. 2 1, 2. 2 1 ), blue, alpha =0.5) r g l. quads ( c ( 4. 4 9, 4. 4 9, 4. 4 9, 4. 4 9 ), c ( 1, 2. 3, 2. 3, 1 ), c ( 0. 5, 0. 5, 2. 1, 2. 1 ), black ) r g l. quads ( c ( 0, 0, 4. 5, 4. 5 ), c ( 0, 0, 0, 0 ), c ( 0, 2. 2, 2. 2, 0 ), #AB5400 ) add. box ( 0, 2. 2, 0, 2. 1, 2. 2, 1. 8, #E7F179 ) r g l. quads ( c ( 0. 5 5, 0. 5 5, 1. 6 5, 1. 6 5 ), c ( 0, 2. 1, 2. 1, 0 ), c ( 1. 7 9, 1. 7 9, 1. 7 9, 1. 7 9 ), #B1B1B1 ) add. box ( 0, 0. 4, 0, 0. 8, 0. 6, 1. 2, #E7F179 ) add. box ( 2. 5 5, 2. 1 5, 0, 0. 4, 0, 0. 4, #E7F179 ) add. box ( 2. 6, 4. 3, 0, 0. 4, 0, 2. 1, #E7F179 ) add. box ( 1, 2. 1, 0, 0. 8, 0, 0. 4 5, #E7F179 ) r g l. quads ( c ( 1. 3, 1. 3, 2. 1, 2. 1 ), c ( 1, 1. 8, 1. 8, 1 ), c ( 0. 0 1, 0. 0 1, 0. 0 1, 0. 0 1 ), #B1B1B1 ) r g l. quads ( c ( 0, 0, 0. 8, 0. 8 ), c ( 0, 2, 2, 0 ), c ( 0. 0 1, 0. 0 1, 0. 0 1, 0. 0 1 ), #7A7E84 ) r g l. m a t e r i a l ( ambient= #FFFFFF ) r g l. l i g h t ( d i f f u s e= #AAAAAA ) for ( i i n 1 : 3 6 0 ) { r g l. viewpoint ( i ) ; } 15