-Instalacja R: -Instalacja RStudio:

Podobne dokumenty
Instalacja Pakietu R

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

Podstawy programowania w R - część 1

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

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

JAVAScript w dokumentach HTML (1)

1 Podstawy c++ w pigułce.

Modelowanie rynków finansowych z wykorzystaniem pakietu R

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

UNIWERSYTET RZESZOWSKI KATEDRA INFORMATYKI

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

Mikrokontroler ATmega32. Język symboliczny

JAVASCRIPT PODSTAWY. opracowanie: by Arkadiusz Gawełek, Łódź

JAVA. Platforma JSE: Środowiska programistyczne dla języka Java. Wstęp do programowania w języku obiektowym. Opracował: Andrzej Nowak

Cw.12 JAVAScript w dokumentach HTML

Pakiety Matematyczne - R Zestaw 1.

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ć.

Wprowadzenie do języka Java

Metody numeryczne Laboratorium 2

Statystyka I z R. Bartosz Maćkiewicz. 2 października 2017

Programowanie obiektowe

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

C++ wprowadzanie zmiennych

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ć.

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

1 Podstawy c++ w pigułce.

2 Przygotował: mgr inż. Maciej Lasota

Podstawy programowania. 1. Operacje arytmetyczne Operacja arytmetyczna jest opisywana za pomocą znaku operacji i jednego lub dwóch wyrażeń.

Informacja o języku. Osadzanie skryptów. Instrukcje, komentarze, zmienne, typy, stałe. Operatory. Struktury kontrolne. Tablice.

Podstawy i języki programowania

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?

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

Język skryptowy: Laboratorium 1. Wprowadzenie do języka Python

Test przykładowy 2 PAI WSB Wrocław /06/2018

Python wstęp do programowania dla użytkowników WCSS

Python wprowadzenie. Warszawa, 24 marca PROGRAMOWANIE I SZKOLENIA

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

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

Przykład 1: Funkcja jest obiektem, przypisanie funkcji o nazwie function() do zmiennej o nazwie funkcja1

Należy ściągnąć oprogramowanie Apache na platformę

do drukowania tekstu służy funkcja echo <?php echo "hello world!";?> jeżeli użyjemy jej kilka razy: <?php

Lab 9 Podstawy Programowania

Elementy metod numerycznych - zajęcia 9

JAVASCRIPT PODSTAWY. opracowanie: by Arkadiusz Gawełek, Łódź

Statystyczne systemy uczące

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

Programowanie obiektowe

Wyrażenia arytmetyczne

Programowanie w języku Python. Grażyna Koba

Zad. 3: Układ równań liniowych

Programowanie C++ Wykład 2 - podstawy języka C++ dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki

Zanim zaczniemy GNU Octave

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

Instalacja

Języki programowania C i C++ Wykład: Typy zmiennych c.d. Operatory Funkcje. dr Artur Bartoszewski - Języki C i C++, sem.

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

Wprowadzenie. Organizacja pracy i środowisko programistyczne. Mirosław Ochodek

Część 4 życie programu

author: Andrzej Dudek

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

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

Algorytmy i struktury danych

Podstawy języka C++ Maciej Trzebiński. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. Praktyki studenckie na LHC IVedycja,2016r.

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.

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

Ogólny schemat prostego formularza: A może lepiej zamiast przycisku opartego o input tak:

1 Wskaźniki i zmienne dynamiczne, instrukcja przed zajęciami

Podstawy JavaScript ćwiczenia

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

Dodatkowo klasa powinna mieć destruktor zwalniający pamięć.

Instrukcja do ćwiczeń nr 4 typy i rodzaje zmiennych w języku C dla AVR, oraz ich deklarowanie, oraz podstawowe operatory

JAVAScript w dokumentach HTML - przypomnienie

Oczywiście plik musi mieć rozszerzenie *.php

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

KOTLIN. Język programowania dla Androida

Przetwarzanie i analiza danych w języku Python / Marek Gągolewski, Maciej Bartoszuk, Anna Cena. Warszawa, Spis treści

Programowanie komputerowe. Zajęcia 1

Visual Basic for Application (VBA)

Wykorzystanie programów komputerowych do obliczeń matematycznych

MATERIAŁY DO ZAJĘĆ II

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

R dla każdego : zaawansowane analizy i grafika statystyczna / Jared P. Lander. Warszawa, Spis treści

ARKUSZ KALKULACYJNY komórka

WYDZIAŁ ELEKTROTECHNIKI, AUTOMATYKI I INFORMATYKI INSTYTUT AUTOMATYKI I INFORMATYKI KIERUNEK AUTOMATYKA I ROBOTYKA STUDIA STACJONARNE I STOPNIA

Podstawy Programowania

Operacje wykonywane są na operandach (argumentach operatorów). Przy operacji dodawania: argumentami operatora dodawania + są dwa operandy 2 i 5.

do MATLABa programowanie WYKŁAD Piotr Ciskowski

LABORATORIM BIOINFORMATYKI

Programowanie Delphi obliczenia, schematy blokowe

I. Podstawy języka C powtórka

Wstęp do programowania. Różne różności

Wstęp do Programowania Lista 1

Podstawy Programowania C++

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

Programowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++

Środowisko R wprowadzenie. Wykład R1; Pakiety statystyczne

Podstawy programowania C. dr. Krystyna Łapin

Transkrypt:

Rachunek Prawdopodobieństwa i Statystyka lab 1. Kaja Chmielewska (Kaja.Chmielewska@cs.put.poznan.pl) 1. Krótko o R R jest wolnym (otwartym i darmowym), zaawansowanym środowiskiem oraz językiem programowania. R jest często nazywany pakietem statystycznym, z uwagi na liczbę dostępnych funkcji statystycznych (możliwości R są jednak znacznie większe). 2. Cechy języka: -składnia przypomina trochę C/C++, -jest językiem ogólnego zastosowania (można w nim zaimplementować praktycznie każdy algorytm), -przeznaczony raczej do małych programów, -zwięzła składnia (krótki kod, złożony rezultat), -jest językiem interpretowanym, a nie kompilowanym -można generować grafiki, wykresy, diagramy i inne, -tryb interaktywny i tryb wsadowy, -posiada repozytorium CRAN (Comprehensive R Archive Network), gdzie znajdują się tysiące pakietów rozszerzających R. 3. Organizacja pracy R i Rstudio -Instalacja R: https://cran.r-project.org/ -Instalacja RStudio: https://www.rstudio.com/products/rstudio/download/ -RStudio ma pewną przewagę nad R: - ułatwia pracę dzięki licznym rozszerzeniom możliwości konsoli, - wygodne zarządzanie plikami źródłowymi, w tym projektami, - zintegrowany system pomocy, narzędzia wspomagające, - obsługa systemów kontroli wersji, - w RStudio pracuje się w obszarze roboczym, można tworzyć projekty, - system podpowiedzi (Tab). 4. Praca w R -Podstawowe elementy: ">" znak zachęty (command prompt) oznacza, że platforma R jest gotowa do realizacji polecenia "+" znak kontynuacji, znak oczekujący na dokończenie polecenia "<-" lub "=" symbol przypisania. W większości zastosowań operatory = i można stosować zamiennie. Jednak nie zawsze mają one to samo działanie. Operator ma wyższy priorytet. "\n" znak sterujący, znak nowej linii "#" znak komentarza

-Problem z operatorem przypisania <- i =: > plot(liczby = 1:10) #w tym przypadku operator = wskazuje, który argument funkcji jest określany, nie przypisuje wartości > plot(liczby<-1:10) #operator <- przypisuje wartość do zmiennej -Pierwsze uruchomienie R. Wyświetl informację o wersji środowiska: > R.version.string > getrversion() -Instalowanie i ładowanie pakietów: Zainstalowanie podstawowego zbioru bibliotek daje nam już duże możliwości. A jeszcze większe możliwości zapewniają dodatkowe pakiety w których znajdują się różne funkcje (funkcje w R pogrupowane są w pakietach/bibliotekach). Instalowanie pakietu: > install.packages() Po zainstalowaniu nowego pakietu, pliki z danymi, funkcjami i plikami pomocy znajdą się na dysku twardym komputera. Jedna wszystkie pakiety są wgrywane jako podkatalogi do katalogu library. Chcąc skorzystać z wybranych funkcji należy przed pierwszym użyciem załadować odpowiedni pakiet: > library() -Pomoc w R, czyli zapoznaj się z funkcją help(), która wyświetla stronę z pomocą dla funkcji o podanej nazwie: > help("nazwafunkcji") lub >?nazwafunkcji Wyświetlenie opisu dla przykładowego pakietu, np. MASS: > help(package=mass) 5. Podstawowe elementy R: Podstawowe elementy składni R to typy, obiekty. Wszystko czym można operować w języku R jest obiektem. Obiekty można podzielić na kilka typów : -typ liczbowy (numeryczny): liczby całkowite, rzeczywiste, wartość NaN, literały Inf i -Inf. -typ czynnikowy (wyliczeniowy/kategoryczny): typ do przechowywania wektorów wartości. Występujących w kilku kategoriach (kilku poziomach). Np. Płeć ma 2 wartości, czyli występuje na dwóch poziomach. -typ znakowy: wartościami obiektów są napisy/łańcuchy znaków. -typ logiczny: FALSE i TRUE.

-wektor elementów: zbiór obiektów tego samego typu, funkcja c(). -lista: zbiór obiektów różnego typu, funkcja list(). Przykład: > list(imie="jan", nazwisko="kowalski", wiek=25) -macierz i tablica: funkcja matrix() i array(). -ramka danych/tabela danych: elementy w każdej kolumnie są tego samego typu, ale typy mogą być inne pomiędzy kolumnami, funkcja data.frame(). Przykład: > ramka data.frame(id = c(1:3), wiek = c(21:23), czykobieta=c(t,t,f)) Odwołanie do konkretnej kolumny: > ramka$wiek > ramka[,"wiek"] > ramka[,2] -typ funkcyjny: wykorzystuje się słowo kluczowe function. Bardziej szczegółowy podział typów w języku R: - typy podstawowe a) typy atomowe -logical - wektor wartości logicznych -raw - wektor bajtów -integer - wektor wartości całkowitych -double - wektor wartości rzeczywistych -complex - wektor wartości zespolonych -character - wektor napisów -NULL - typ pusty b) o str uturze rekurencyjnej -list - lista, wektor uogólniony -closure/function - funkcja -environment - środowisko c) typy reprezentujące nieobliczone wyrażenia języka R -name - nazwa -call - wywołanie -expression - ciąg wyrażeń (zaliczany również do typów rekurencyjnych) - typy złożone (reprezentowane przy użyciu obiektów typów podstawowych) -klasa matrix, array - macierz i tablica -klasa ts - szereg czasowy -klasa factor - czynnik -klasa data.frame - ramka danych -klasa formula formuła

Typ każdego obiektu można poznać wykorzystując funkcję typeof(): > c(typeof(true), typeof(5), typeof( tekst )) Przetestuj powyższą instrukcję ponownie, ale użyj funkcji mode() zamiast typeof(). Hierarchia i uzgadnianie typów, poniżej przedstawiono wektor zawierający elementy różnych typów: > c(true, 1L, 5.5, 3.0i, siedem ) wynikiem jest wektor napisów. R uzgadnia typ, tak aby informacje o najbardziej ogólnym z obiektów dało się przechować bez znaczącej straty. Np. konwersja liczb rzeczywistych na napisy może prowadzić do zaokrąglenia wartości. Uzgodnienie typów w R zwane jest koercją. Hierarchia typów (od najbardziej do najmniej szczegółowych): -typ logical -typ integer -typ double -typ complex -typ character - Konwersja / Rzutowanie typów: Typ zmiennej nie jest przypisany do zmiennej (czy do jej wartości) na stałe. Możemy zmieniać typy bez podawania nowej wartości dla tej zmiennej. Jednak w przypadku rzutowania, zgadzamy się na ewentualną utratę informacji (w przypadku rzutowania z typu mniej do bardziej szczegółowego). Najczęstsze konwersje to zamiana na typ znakowy: > as.character() > as.character(c(true,false)) > as.complex(c(true,false)) lub na typ liczbowy : > as.numeric() Konwertować można pojedyncze wartości jak również złożone struktury, jak np. lista. Można także sprawdzić jakiego typu jest dana zmienna, np.: > is.integer() - Operatory arytmetyczne i logiczne: Podobnie jak w języku C, proszę jednak zwrócić uwagę na dzielenie modulo: - x zmiana znaku x. x + y suma x - y różnica x * y iloczyn

x / y iloraz x ^ y l iczba x do potęgi y x %% y dzielenie modulo (reszta z dzielenia x przez y) x %/% y część całkowita z dzielenia x przez y <,==,>,<=,>=,!= standardowe operatory porównania wartości liczbowych! operator negacji &,&&,, logiczny iloczyn i logiczna suma any(), all() logiczna suma(iloczyn) wszystkich elementów wektora Operatory & i służą do wykonywania operacji na listach i wektorach, natomiast operatory && i na pojedynczych wartościach. - Wektory: Do utworzenia wektora wykorzystuje się funkcję c() (ang. combine). Przetestuj: > wektor c(1, 2, 3.5, -4, 0) > wektor Na wektorze można wykonywać różne operacje, np.: > wektor^2 > wektor 2 Funkcja length() określa długość (ilość elementów) wektora. Można łączyć wektory (poniżej wektor wartości logicznych): > c(c(true,false),c(true,false)) Oprócz funkcji c() istnieje jeszcze rep() i operator :. Można replikować wektory, funkcją rep() (ang. replicate). Natomiast dwukropek generuje ciągi arytmetyczne z krokiem 1 lub -1: > rep(true,3) #TRUE powtórzone 3 razy > rep(1:2, times=5) > rep(1:2, each=5) > c(-3:3,7:1) Do generowania ciągów arytmetycznych o dowolnym kroku służy funkcja seq(), która pojawi się w kolejnym materiale. Można odwołać się do poszczególnych elementów wektora: > wektor[3] > wektor[1:2] > wektor[c(1,3)] Manipulacje na wybranym fragmencie wektora: > wektor[3] 2 Wartości większe od 0: > wektor[wektor>0]

- Macierze funkcja matrix(): Utworzenie macierzy zawierającej same 0, macierz 2x3 > macierz matrix(0,2,3) Podobnie ja na wektorach można wykonywać operacje arytmetyczne > macierz+1 Wypełnienie macierzy elementami od 1 do 6 > macierz matrix(1:6,2,3) Wyświetlenie kolumny pierwszej i wiersza pierwszego: > macierz[,2] > macierz[2,] Mnożenie macierzy poprzez operator %*% -Wartości specjalnego znaczenia: -Brak danych, czyli NA(ang. not available), zobacz: >?NA NA nie należy mylić z NULL -Nie-liczba : wartość nieokreślona NaN (ang. not a number) -Wartości nieskończone Inf (ang. infinity)

Zadania: Zadania pod koniec zajęć prześlij na maila (Kaja.Chmielewska@cs.put.poznan.pl) w wersji.pdf. Proszę nadać tytuł maila zgodnie z opisem: RPiS_Imię_Nazwisko_lab1 1. Przypisz dwóm zmiennym wartości i przetestuj operator modulo oraz zwróć całkowitą wartość dzielenia. 2. Zapoznaj się z funkcjami: help.search(), q(), demo(), args(), apropos(), example(). Opisz co robią. 3. Zapoznaj się z pakietem txtplot, co robi?. Następnie zainstaluj i załaduj ten pakiet. Co jest wynikiem polecenia: > txtplot(cars[,1], cars[,2], xlab = "speed", ylab = "distance") 4. Wykorzystaj R jako precyzyjny kalkulator. Przetestuj funkcje sqrt(), log(), sin(). Wykorzystaj funkcję log(), aby wyliczyć logarytm naturalny i logarytm dziesiętny z przykładowych liczb. 5. Sprawdź jak to działa, jakie wartości mają zmienne a i b? Dlaczego jest błąd? > a = b = 3 > a b 3 > a = b 3 > a b = 3 6. Do zmiennej x przypisz wartość 7, sprawdź czy jest typu integer. Przetestuj funkcje mode() i class(). 7. Użyj funkcji cat() i print() by wyświetlić Hello World!, pamiętaj o znaku nowej linii. Jaka jest różnica pomiędzy tymi funkcjami? 8. Wykorzystaj funkcję assign() do przypisania zmiennej y, wartości 8. 9. Stwórz macierz A i B o wymiarach 2x2 o wartościach od 1 do 4, pomnóż macierze. 10. Zadeklaruj wektor o wartościach 1, 10, NaN. Wykorzystaj funkcję, która sprawdzi czy w wektorze występuje wartość NaN. Jaka to funkcja?