Programowanie Generowanie danych. Uwagi ogólne

Podobne dokumenty
Programowanie Generowanie danych. Uwagi ogólne

Funkcja sample() Funkcja sample(), domyślnie generuje dane bez powtórzeń.

Funkcja sample, domyślnie generuje dane bez powtórzeń.

Cw.12 JAVAScript w dokumentach HTML

1 Podstawy c++ w pigułce.

1 Podstawy c++ w pigułce.

Skrypty i funkcje Zapisywane są w m-plikach Wywoływane są przez nazwę m-pliku, w którym są zapisane (bez rozszerzenia) M-pliki mogą zawierać

JAVAScript w dokumentach HTML - przypomnienie

Podstawy Programowania C++

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

3 Przygotował: mgr inż. Maciej Lasota

Programowanie w Turbo Pascal

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)

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

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

Komentarze w PHP (niewykonywane fragmenty tekstowe, będące informacją dla programisty)

Dynamiczne przetwarzanie stron. dr Beata Kuźmińska-Sołśnia

Bloki anonimowe w PL/SQL

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

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

Modelowanie rynków finansowych z wykorzystaniem pakietu R

Funkcje matematyczne w C. Programowanie w C Marek Pudełko

Konstrukcje warunkowe Pętle

Wprowadzenie do programowania w VBA

Instalacja Pakietu R

Podstawy programowania w języku Visual Basic dla Aplikacji (VBA)

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

JAVAScript w dokumentach HTML (1)

MATrix LABoratory. A C21 delta tvx444 omega_zero. hxx J23 aaa g4534 Fx_38

Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek].

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

Wstęp do Programowania Lista 1

Python wprowadzenie. Warszawa, 24 marca PROGRAMOWANIE I SZKOLENIA

Instrukcja wyboru, pętle. 2 wykład. Podstawy programowania - Paskal

do MATLABa programowanie WYKŁAD Piotr Ciskowski

Pakiety Matematyczne - R Zestaw 1.

Metody numeryczne Laboratorium 2

LibreOffice Calc VBA

Pascal - wprowadzenie

Podstawy programowania. Wykład: 4. Instrukcje sterujące, operatory. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Instrukcje warunkowe i skoku. Spotkanie 2. Wyrażenia i operatory logiczne. Instrukcje warunkowe: if else, switch.

METODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH

Naukę zaczynamy od poznania interpretera. Interpreter uruchamiamy z konsoli poleceniem

Matlab Składnia + podstawy programowania

Wprowadzenie do środowiska programistycznego R (na podst. 1) R jako kalkulator

Instrukcje sterujące. wer. 11 z drobnymi modyfikacjami! Wojciech Myszka :53:

Podstawy Programowania Podstawowa składnia języka C++

4. Funkcje. Przykłady

Język C, instrukcje sterujące (laboratorium)

Informatyka I. Wykład 3. Sterowanie wykonaniem programu. Instrukcje warunkowe Instrukcje pętli. Dr inż. Andrzej Czerepicki

Podstawy programowania Laboratorium. Ćwiczenie 2 Programowanie strukturalne podstawowe rodzaje instrukcji

Pętle. Dodał Administrator niedziela, 14 marzec :27

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

Wstęp do programowania

Administracja sieciowymi systemami operacyjnymi III Klasa - Linux

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

Algorytmika i Programowanie VBA 1 - podstawy

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

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

Programowanie Delphi obliczenia, schematy blokowe

Programowanie w języku Python. Grażyna Koba

Wizualizacja danych 2D i 3D - Gnuplot

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

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?

Część 4 życie programu

Ćwiczenie 1. Wprowadzenie do programu Octave

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

Środowisko R wprowadzenie c.d. Wykład R2; Struktury danych w R c.d.

Nazwa implementacji: Nauka języka Python wyrażenia warunkowe. Autor: Piotr Fiorek. Opis implementacji: Poznanie wyrażeń warunkowych if elif - else.

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

Niezależne i sterowane źródła napięciowe i prądowe

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

Instrukcje sterujące. Programowanie Proceduralne 1

Języki skryptowe w programie Plans

Skrypty powłoki Skrypty Najcz ciej u ywane polecenia w skryptach:

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 4

PROGRAMOWANIE W PYTHONIE OD PIERWSZYCH KROKÓW

Wstęp do programowania

Wnioskowanie Statystyczne - Ćwiczenia Michał Marosz Monday, February 23, 2015

JAVAScript w dokumentach HTML (2)

Liczby losowe i pętla while w języku Python

GNU Octave (w skrócie Octave) to rozbudowany program do analizy numerycznej.

Podstawy i języki programowania

Kiedy i czy konieczne?

Krótki kurs JavaScript

Ćwiczenie 1. Wprowadzenie do programu Octave

Instrukcja warunkowa i wyboru

while (test) instrukcja; int i=0; while (i<10) i++; dopóki test prawdziwy wykonuj instrukcję Wykonano: 35% / \ fałsz test prawda instrukcja

W przeciwnym wypadku wykonaj instrukcję z bloku drugiego. Ćwiczenie 1 utworzyć program dzielący przez siebie dwie liczby

Przetwarzanie sygnałów

Podstawy programowania w języku C

Odczyt danych z klawiatury Operatory w Javie

Struktura pliku projektu Console Application

Podstawy programowania C. dr. Krystyna Łapin

Ćwiczenie 1. Matlab podstawy (1) Matlab firmy MathWorks to uniwersalny pakiet do obliczeń naukowych i inżynierskich, analiz układów statycznych

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 4 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44

Pętla for. Wynik działania programu:

Programowanie komputerowe. Zajęcia 1

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

dr inż. Jarosław Forenc

Transkrypt:

Uwagi ogólne R nie jest wyjątkiem w językach programowania i opiera się na zmiennych i funkcjach. Zmienne nie muszą być deklarowane, można ich zatem od razu używać. Klasycznym operatorem przypisania w R jest <-, natomiast obecnie coraz częściej wykorzystuje się znak równości (=). Jeśli chcemy żeby wynik przypisania został wyświetlony na ekranie należy przypisanie zamknąć w nawiasy (). Jeśli chcemy aby kilka wyrażeń było zapisanych w jednej linii, to musimy oddzielić je średnikiem (;). Komentarz poprzedzamy znakiem hash (#), wszystko do końca linii jest już komentarzem. Dla czytelności kodu można używać spacji gdziekolwiek się chce, są one pomijane.

Uwagi ogólne R rozróżnia wielkie i małe litery, co znaczy, że x oraz X to dwie inne zmienne. W celu określania kolejności działań używamy wyłącznie nawiasów okrągłych (). Możemy używać następujących operatorów matematycznych: +,,, / oraz ˆ(potęgowanie), %% (reszta z dzielenia tzw. modulo) %/% (część całkowita z dzielenia). Jeśli chcemy aby wykonało się kilka wyrażeń, to musimy je zgrupować za pomocą {}. W nazwach można używać wszystkich znaków A-Za-z0-9 oraz. i. Dodatkowo nazwa musi zaczynać się od. lub litery, jeśli jednak zaczyna się od., to drugi znak nie może być cyfrą.

Uwagi ogólne Za pomocą polecenia ls() możemy zobaczyć wszystkie aktualnie istniejące obiekty. Usunąć jakiś obiekt możemy za pomocą polecenia rm(nazwa). Kod źródłowy funkcji możemy zobaczyć wpisując jej nazwę. W przypadku funkcji przeciążonych należy wyspecyfikować również klasę obiektu. Wszystkie przeciążenia funkcji możemy wyświetlić za pomocą funkcji methods, funkcje ukryte (czyli takie, które nie są przeznaczone do osobnego wywoływania) oznaczone są za pomocą *. Kod takich funkcji wyświetlamy za pomocą funkcji getanywhere.

Instrukcja warunkowa Najprostsza postać tej instrukcji to: if (warunek) wyrażenie Instrukcja ta sprawdza czy warunek jest prawdziwy, jeśli tak to wykonuje wyrażenie, w przeciwnym razie nic nie robi. Jeśli chcemy aby w przypadku nieprawdziwości warunku również coś się działo musimy użyć następującej postaci instrukcji warunkowej: if (warunek) wyrażenie1 else wyrażenie2 Istnieje również bardzo użyteczna (i szybsza od pętli) wielowymiarowa wersja instrukcji warunkowej postaci: ifelse (warunek, a, b) W tym przypadku wszystkie elementy instrukcji są wektorami. Sprawdzane są kolejne warunki w wektorze warunek, jeśli jest prawdziwy to odpowiednia składowa ma wartość a[i], w przeciwnym razie ma wartość b[i].

Instrukcja warunkowa Operator Działanie & Logiczne AND (i) Logiczne OR (lub)! Logiczne NOT (nieprawda, że) == równy!= różny < mniejszy > większy <= mniejszy bądź równy >= większy bądź równy

Funkcje any oraz all Jeśli chcemy działać na całych wektorach, a nie tylko na skalarach wygodnie jest używać funkcji any oraz all. Pierwsza z nich daje wartość TRUE jeśli warunek jest spełniony chociaż dla jednej składowej wektora, a druga gdy warunek jest spełniony dla wszystkich składowych.

Zagnieżdżanie instrukcji if Czasami zamiast wielokrotnego zagnieżdżania instrukcji if warto skorzystać z funkcji switch (zmienna, wartosc1 = akcja1, wartosc2 = akcja2,...) W takim przypadku w zależności od wartości zmiennej (powinna być typu znakowego lub wyliczeniowego) wykonywane są różne akcje.

Pętla W R mamy wszystkie trzy klasyczne postaci pętli: for (licznik in start:koniec) wyrażenie while (warunek) wyrażenie repeat wyrażenie

Pętla Pętla for jest używana wtedy gdy z góry wiemy ile kroków będzie konieczne do zakończenia zadania. Określamy to poprzez zmienną licznik, dla której zadajemy zakres zmian. Pętla while polega na tym, że wyrażenie jest wykonywane tak długo dopóki warunek jest prawdziwy, w momencie gdy warunek staje się fałszywy pętla się kończy. Ostatnim rodzajem pętli jest pętla typu repeat. W tym przypadku wyrażenie jest tak długo wykonywane aż gdzieś wewnątrz nakażemy zakończenie pętli za pomocą polecenia break. Jest to jedyna możliwość zakończenia tego typu pętli. Można tej funkcji również używać do wcześniejszego opuszczenia innych pętli. Czasami przydaje się również polecenie next, które przerywa bieżącą iterację i przechodzi do następnej.

Funkcje Własne funkcje tworzymy następująco NazwaFunkcji = function(argumenty) ciało funkcji Tak skonstruowana funkcja może być wywołana za pomocą swojej nazwy, jeśli funkcja nie posiada argumentów wywołujemy ją za pomocą NazwaFunkcji(). Jeśli chcemy aby pewne argumenty miały wartości domyślne, to możemy wykorzystać konstrukcję: NazwaFunkcji = function(arg1 = wartość) ciało funkcji W przypadku takiej konstrukcji arg1 ma wartość domyślną i jeśli wywołamy funkcję NazwaFunkcji(), to zostanie ona wywołana właśnie z takim domyślnym argumentem.

Funkcje Specjalnym argumentem są, trzy kropki (...). Oznaczają one nieokreśloną liczbę argumentów. Najczęściej jest używany do przekazywania parametrów funkcjom wywoływanym wewnątrz definiowanej funkcji (np. parametrów graficznych). W ostatniej linii ciała funkcji zapisujemy, to co funkcja ma zwrócić, możemy do tego użyć instrukcji grupującej (czyli funkcji c). Wszystkie operacje wewnątrz funkcji są lokalne, tzn. zmienne, które tam powstają oraz zmiany wartości zmiennych mają miejsce jedynie wewnątrz funkcji i po jej zakończeniu przywracane są takie wartości jakie zmienne miały przed jej wywołaniem, a zmienne lokalne są kasowane. Jeśli chcemy, żeby tak się nie działo, czyli aby zmiany były przenoszone na zewnątrz funkcji musimy użyć operatora superprzypisania <<-.

Funkcje Jeśli chcemy, aby nasza funkcja zwracała jednak kilka wartości, a nie wektor, to musimy zgrupować wyniki w listę. Jeśli planujemy zakończyć wykonywanie funkcji wcześniej należy użyć polecenia return. Jeśli natomiast chcemy żeby funkcja nie wyświetlała wyniku (jest on ukryty i może być przypisany do zmiennej) należy użyć polecenia invisible. Przy pisaniu bardziej zaawansowanych funkcji przydatne mogą być jeszcze funkcje missing oraz match.arg. Pierwsza z nich sprawdza, czy został przekazany argument do funkcji. Natomiast druga sprawdza, czy wśród podanych argumentów są właściwe i je dopasowuje (umożliwia to np. korzystanie w funkcji z nazw skróconych parametrów).

Funkcje

Podstawowe funkcje matematyczne oraz pomocnicze abs(x) Wartość bezwzględna atan2(y, x) Kąt (w radianach) pomiędzy osią OX a wektorem o początku w punkcie (0,0) i końcu w punkcie (x, y). Używana do zamiany współrzędnych z układu kartezjańskiego na biegunowy. ceiling(x) Sufit, czyli najmniejsza liczba całkowita nie mniejsza od x. choose(n, k) Liczba kombinacji k z n, listę tych kombinacji otrzymamy za pomocą funkcji combn(n, k). diff(x) Różnice kolejnych par składowych wektora x exp(x) Funkcja wykładnicza floor(x) Podłoga, czyli największa liczba całkowita nie większa od x. log(x) Logarytm naturalny, istnieją też funkcje log2(x) oraz log10(x), które są odpowiednio logarytmem o podstawie 2 i 10. Ogólna funkcja licząca logarytm o podstawie b, ma postać log(x, b)

Podstawowe funkcje matematyczne oraz pomocnicze min(x), max(x) Minimum, maksimum. Funkcje which.min oraz which.max zwracają numer odpowiedniej obserwacji (pierwszej). Funkcje pmin oraz pmax wywołane dla dwóch wektorów zwracają odpowiednio minimum (maksimum) dla każdej pary. prod(x) Iloczyn elementów, funkcja cumprod(x) daje iloczyn skumulowany round(x) Zaokrąglanie, round(x, n) - zaokrąglanie do n miejsc. R zaokrągla 0.5 do 0, odwrotnie niż np. Matlab. sin(x), cos(x), tan(x) Funkcje trygonometryczne asin(x), acos(x), atan(x) Funkcje cyklometryczne (funkcje odwrotne do funkcji trygonometrycznych) sinh(x), cosh(x), tanh(x) Funkcje hiperboliczne asinh(x), acosh(x), atanh(x) Funkcje hiperboliczne odwrotne

Podstawowe funkcje matematyczne oraz pomocnicze sign(x) sqrt(x) sum(x) length(x) print(x) rev(x) sort(x) summary(x) Znak liczby Pierwiastek kwadratowy Suma elementów, funkcja cumsum(x) daje sumę skumulowaną Liczba elementów, funkcje nrow oraz ncol podają odpowiednio liczbę wierszy i kolumn Wyświetla dane Odwraca porządek danych Sortuje dane (wektor) Statystyki danych

Zasady dobrego stylu programowania w R (Google) File names should end in.r. Variable names should have all lower case letters and words separated with dots. Function names have initial capital letters and no dots (CapWords). Constants are named like functions but with an initial k. The maximum line length is 80 characters. Place spaces around all binary operators (=, +, -, <-, etc.). Place a space before left parenthesis, except in a function call. Do not place spaces around code in parentheses or square brackets. An opening curly brace should never go on its own line; a closing curly brace should always go on its own line. Always begin the body of a block on a new line. Do not terminate your lines with semicolons or use semicolons to put more than one command on the same line. Function definitions should first list arguments without default values, followed by those with default values.

Generowanie dowolnych danych Funkcja sample, domyślnie generuje dane bez powtórzeń. W R znajdują się pewne predefiniowane wektory, z których możemy losować elementy za pomocą funkcji sample. Są to: letters (małe litery), LETTERS (wielkie litery), month.abb (skróty trzyliterowe angielskich nazw miesięcy), month.name (angielskie nazwy miesięcy). Funkcja gl do generowania zmiennych czynnikowych. gl(n = l. poziomów, k = l. powtórzeń, length = długość, labels = poziomy)

Funkcje dotyczące rozkładów prawdopodobieństwa Rozkład Dystrybuanta Gęstość Kwantyl Generator dwumianowy pbinom dbinom qbinom rbinom Poissona ppois dpois qpois rpois ujemny dwumianowy pnbinom dnbinom qnbinom rnbinom geometryczny pgeom dgeom qgeom rgeom hipergeometryczny phyper dhyper qhyper rhyper wielomianowy dmultinom rmultinom jednostajny punif dunif qunif runif beta pbeta dbeta qbeta rbeta wykładniczy pexp dexp qexp rexp gamma pgamma dgamma qgamma rgamma normalny pnorm dnorm qnorm rnorm logarytmiczno-normalny plnorm dlnorm qlnorm rlnorm Weibulla pweibull dweibull qweibull rweibull chi-kwadrat pchisq dchisq qchisq rchisq t pt dt qt rt Cauchy ego pcauchy dcauchy qcauchy rcauchy F pf df qf rf