Grafická prezentace a numerické modelování geochemických dat

Podobné dokumenty
VISUAL BASIC. Přehled témat

Maturitní otázky z předmětu PROGRAMOVÁNÍ

Stručný návod k programu Octave

EVROPSKÝ SOCIÁLNÍ FOND. Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI

Vyučovací hodina. 1vyučovací hodina: 2vyučovací hodiny: Opakování z minulé hodiny. Procvičení nové látky

Vzorce. StatSoft. Vzorce. Kde všude se dá zadat vzorec

Basic256 - úvod do programování Příklady. ing. petr polách

6. Příkazy a řídící struktury v Javě

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

C# konzole Podíl dvou čísel, podmínka IF

Algoritmizace a programování

Pointery II. Jan Hnilica Počítačové modelování 17

Programovací jazyk Pascal

2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus pro vyhledání položky v binárním stromu.

Základy algoritmizace a programování

Operační systémy. Cvičení 4: Programování v C pod Unixem

Algoritmizace a programování

Úvod do programování. Lekce 1

Přednáška 7. Celočíselná aritmetika. Návratový kód. Příkazy pro větvení výpočtu. Cykly. Předčasné ukončení cyklu.

5a. Makra Visual Basic pro Microsoft Escel. Vytvořil Institut biostatistiky a analýz, Masarykova univerzita J. Kalina

Úvod do jazyka C. Ing. Jan Fikejz (KST, FEI) Fakulta elektrotechniky a informatiky Katedra softwarových technologií

Funkce, podmíněný příkaz if-else, příkaz cyklu for

Přednáška 8. Proměnné. Psaní a ladění skriptů. Parametry skriptu. Vstup a výstup. Konfigurační soubory shellu. Úvod do Operačních Systémů Přednáška 8

Tematická oblast: Programování 2 (VY_32_INOVACE_08_2_PR) Anotace: Využití ve výuce: Použité zdroje:

Čtvrtek 3. listopadu. Makra v Excelu. Obecná definice makra: Spouštění makra: Druhy maker, způsoby tvorby a jejich ukládání

Pracovní text a úkoly ke cvičením MF002

2.1 Podmínka typu case Cykly Cyklus s podmínkou na začátku Cyklus s podmínkou na konci... 5

DSL manuál. Ing. Jan Hranáč. 27. října V této kapitole je stručný průvodce k tvorbě v systému DrdSim a (v

- znakové konstanty v apostrofech, např. a, +, (znak mezera) - proměnná zabírá 1 byte, obsahuje kód příslušného znaku

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

Algoritmizace a programování

Vstupní požadavky, doporučení a metodické pokyny

Kurz LSL skriptování. Shiny Iceberg 2009

Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu:

Obsah přednášky. programovacího jazyka. Motivace. Princip denotační sémantiky Sémantické funkce Výrazy Příkazy Vstup a výstup Kontinuace Program

Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15

DUM 20 téma: Test dávky

Obsah. Úvod 11 Základy programování 11 Objektový přístup 11 Procvičování 11 Zvláštní odstavce 12 Zpětná vazba od čtenářů 12 Errata 13

Zadání: TÉMA: Zápis algoritmu, čtení textového souboru, porovnání řetězců.

4a. Makra Visual Basic pro Microsoft Excel Cyklické odkazy a iterace Makra funkce a metody

Úvod do Matlabu. Praha & EU: Investujeme do vaší budoucnosti. 1 / 24 Úvod do Matlabu

while cyklus s podmínkou na začátku cyklus bez udání počtu opakování while podmínka příkazy; příkazy; příkazy; end; % další pokračování programu

cyklus s daným počtem opakování cyklus s podmínkou na začátku (cyklus bez udání počtu opakování)

Zápis programu v jazyce C#

Obsah. Začínáme programovat v Ruby on Rails 9. Úvod Vítejte v Ruby 15. O autorovi 9 Poděkování 9

ALGORITMIZACE A PROGRAMOVÁNÍ

Paměť počítače. alg2 1

Proměnné a parametry. predn_08.odt :00:38 1

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

9. lekce Úvod do jazyka C 4. část Funkce, rekurze Editace, kompilace, spuštění Miroslav Jílek

ŘÍDÍCÍ STRUKTURY - PODMÍNKY

Pokročilé programování v jazyce C pro chemiky (C3220) Pokročilá témata jazyka C++

Skripty - úvod. Linux - skripty 2

Příklad: Součet náhodných čísel ve vektoru s počtem prvků, které zadá uživatel, pomocí sum() a pomocí cyklu for. Ověříme, že příliš výpisů na

Slepé prohledávání do šířky Algoritmus prohledávání do šířky Při tomto způsobu prohledávání máme jistotu, že vždy nalezneme koncový stav, musíme ale p

Správné vytvoření a otevření textového souboru pro čtení a zápis představuje

Algoritmizace prostorových úloh

Algoritmy a datové struktury

Programování v C++, 2. cvičení

8. lekce Úvod do jazyka C 3. část Základní příkazy jazyka C Miroslav Jílek

Tabulkový procesor. Základní rysy

Počítačová simulace logistických procesů I. 11. přednáška Programování v SimTalk. ŠAVŠ, Fábry

- znakové konstanty v apostrofech, např. a, +, (znak mezera) - proměnná zabírá 1 byte, obsahuje kód příslušného znaku

PROGRAMOVÁNÍ V SHELLU

2. lekce Algoritmus, cyklus Miroslav Jílek

Poslední nenulová číslice faktoriálu

Cykly. Základy programování 1 Martin Kauer (Tomáš Kühr)

SPJA, cvičení 1. ipython, python, skripty. základy syntaxe: základní datové typy, řetězce. podmínky: if-elif-else, vyhodnocení logických výrazů

C2110 Operační systém UNIX a základy programování

Název předmětu: Školní rok: Forma studia: Studijní obory: Ročník: Semestr: Typ předmětu: Rozsah a zakončení předmětu:

Přednáška 4. Regulární výrazy. Filtry grep, sed a awk. Úvod do Operačních Systémů Přednáška 4

Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.

Větvení a cykly. Úvod do programování 1 Tomáš Kühr

IUJCE 07/08 Přednáška č. 6

Tematický celek Proměnné. Proměnné slouží k dočasnému uchovávání hodnot během provádění aplikace Deklarace proměnných

Středoškolská technika 2017 PROGRAM NA GENEROVÁNÍ PRVOČÍSEL

IB111 Úvod do programování skrze Python Přednáška 7

Pokročilé programování v jazyce C pro chemiky (C3220) Třídy v C++

Programování v jazyce JavaScript

přetížení operátorů (o)

Více o konstruktorech a destruktorech

Hanojská věž. T2: prohledávání stavového prostoru. zadání [1 1 1] řešení [3 3 3] dva možné první tahy: [1 1 2] [1 1 3]

PŘETĚŽOVÁNÍ OPERÁTORŮ

Začínáme vážně programovat. Řídící struktury Přetypování Vstupně výstupní operace Vlastní tvorba programů

Koncepce (větších) programů. Základy programování 2 Tomáš Kühr

Je n O(n 2 )? Je n 2 O(n)? Je 3n 5 +2n Θ(n 5 )? Je n 1000 O(2 n )? Je 2 n O(n 2000 )? Cvičení s kartami aneb jak rychle roste exponenciála.

Úvod do programování - Java. Cvičení č.4

for (int i = 0; i < sizeof(hodnoty) / sizeof(int); i++) { cout<<hodonoty[i]<< endl; } cin.get(); return 0; }

Úvod do Operačních Systémů

Definice funkcí a procedur. Mnoho operací provozujeme opakovaně, proto je hloupé programovat je při každém použití znovu.

Příkazy preprocesoru - Před překladem kódu překladačem mu předpřipraví kód preprocesor - Preprocesor vypouští nadbytečné (prázdné) mezery a řádky -

Kritéria hodnocení praktické maturitní zkoušky z databázových systémů

Algoritmizace prostorových úloh

ČÁST 1. Základy 32bitového programování ve Windows

Lekce 6 IMPLEMENTACE OPERAČNÍHO SYSTÉMU LINUX DO VÝUKY INFORMAČNÍCH TECHNOLOGIÍ JAZYK C

Rekurze. Pavel Töpfer, 2017 Programování 1-8 1

Programovací jazyk. - norma PASCAL (1974) - implementace Turbo Pascal, Borland Pascal FreePascal Object Pascal (Delphi)

Středoškolská technika SCI-Lab

Transkript:

Grafická prezentace a numerické modelování geochemických dat Programování v R 2.3 Konverze různých typů objektů Při psaní programů je velmi často třeba konvertovat jeden typ objektu na druhý. V R existuje řada funkcí pro tento účel: as.numeric (x) as.character (x) as.expression (x) as.matrix (x) as.data.frame (x) data.matrix (x) Posledně uvedené tři funkce konvertují objekt x na matici nebo data frame. O něco přívětivější možnost převedení data framu na matici představuje funkce data.matrix, která konvertuje všechny proměnné data framu x na numerické a pak je spojí jako sloupce jediné matice. is.numeric (x) is.character (x) is.logical (x) is.matrix (x) is.data.frame (x) Testují typ daného objektu x 2.4 Vstup/výstup print (x) Zobrazí hodnotu vybraného objektu jazyka R. cat (x, y, ) Funkce cat() zobrazí jeden nebo více objektů výrazně primitivnějším způsobem než print(), umožňuje však mnohem větší kontrolu nad způsobem zobrazování. Tato funkce sama o sobě neodřádkovává, pro nový řádek je potřeba explicitně uvést řetězec \n. Např.

2/9 > x<-5.8 > cat("vysledek je ",x," N/m. \n") Vysledek je 5.8 N/m. Této funkce lze použít i pro zapisování dat do souboru na disk viz dokumentace k R. readline () Používá se ke vstupu dat z klávesnice. > x<-readline("zadej hodnotu x:\n") Zadej hodnotu x: 5.8 > x [1] "5.8" Z tohoto příkladu je jasné, že vstup dat je vždy ve formě textového řetězce, a že hodnota numerické proměnné musí být případně konvertována následující funkcí: > x<-as.numeric(x) > x [1] 5.8 data.entry (x) Vyvolá zabudovaný editor, který lze použít pro vložení/editaci dat v jednoduchém spreadsheetu. Příkaz může být volán s parametrem x, specifikujícím objekt určený k editaci. 2.5 Podmíněné příkazy Podmíněné provádění příkazů se provádí pomocí funkce: if (podmínka) výraz1 else výraz2 Pokud je splněna podmínka, provádí se instrukce ve výrazu1, v opačném případě ve výrazu2. Složitější výrazy vyžadují použití složených závorek: if (x>2 & y<1){ print(x) print(y) else{ cat( x<=2 nebo y>=1!\n ) 2.6 Příkazy cyklu I když v R na rozdíl od jazyků BASIC nebo PASCAL se tomu lze obvykle vyhnout, je možné i zde používat příkazů cyklu. for (proměnná in výraz1) výraz2 Výraz2 se provádí pro hodnoty proměnné postupně definované pomocí výrazu1. Složitější výrazy je třeba uzavřít do složených závorek.

2/10 Kupříkladu kód: for (f in (1:5)){ cat( Druha mocnina,f) cat( je,f^2, \n ) Dává výstup: Druha mocnina 1 je 1 Druha mocnina 2 je 4 Druha mocnina 3 je 9 Druha mocnina 4 je 16 Druha mocnina 5 je 25 while (podmínka) výraz výraz se bude provádět dokud je splněna podmínka repeat (podmínka) výraz Poznámka: snažte se příkazům cyklu pokud možno vyhýbat jejich provádění v R znatelně zpomaluje provádění programu. o pomocí cyklu a funkce par(mfrow=) napište krátký program, Cvičení 2.4 který najednou zobrazí šest Harkerových diagramů (binárních diagramů vs.další oxidy hlavních prvků) podle Vaší volby. Použijte souboru s daty pro sázavskou suitu. Nezapomeňte na správný popis os. > WR<-read.table("sazava.data",sep="\t") > WR<-as.matrix(WR[,-1]) > windows() > par(mfrow=c(2,3)) > ee<-c("al2o3","feo","fe2o3","mgo","cao","k2o") > for (f in ee){ > plot(wr[,"sio2"],wr[,f],xlab="sio2",ylab=f,pch=wr[,"symbol"]) > Nyní můžeme napsat o něco sofistikovanější formu programu, která bude využívat možnosti anotací pomocí funkce expression. Nejprve musíme ale znát, že konverze character vektoru x na výraz (angl. expression) se provádí funkcí parse: > parse(text=as.expression(x)) and then the modified part of the code will be: > lab<-c("al[2]*o[3]","feo","fe[2]*o[3]","mgo","cao","k[2]*o") > for (f in 1:length(ee)){ > plot(wr[,"sio2"],wr[,ee[f]],xlab=expression(sio[2]), ylab=parse(text=as.expression(lab[f])),pch=wr[,"symbol"]) > > # Obr. 2.8

2/11 Al 2 O 3 14 16 18 20 FeO 2 3 4 5 6 7 0.5 1.0 1.5 2.0 2.5 3.0 MgO 2 4 6 8 CaO 4 6 8 10 12 14 K 2 O 1.0 1.5 2.0 2.5 Fe 2 O 3 Obr. 2.8. Vybrané Harkerovy diagramy pro sázavskou suitu (Cvičení 2.4) 2.7 Uživatelské funkce jméno<- function (argument1, argument2, ) výraz Posledním příkazem v těle definice uživatelské funkce by měl být return(x), s argumentem upřesňujícím jméno proměnné, kterou má funkce vracet. Jinak se bere ta, jíž byla naposledy přiřazena nějaká hodnota. Příklad použití funkce pro výpočet směrodatné odchylky (podle vzorce S = odchylka<-function(x){ z<-sqrt(sum((x-mean(x))^2)/length(x)) return(z) # funkce vrací hodnotu proměnné z n ( xi x) i= 1 n 2 ): Důležité je si uvědomit, že proměnné použité ve funkci (v našem příkladu x a z) jsou lokální, tedy mimo ni neznámé. Pokud načteme do paměti soubor sazava.data, můžeme pomocí funkce odchylka() spočítat třeba směrodatnou odchylku pro :

2/12 > WR<-read.table("sazava.data",sep="\t") > WR<-as.matrix(WR[,-1]) > odchylka(wr[,"sio2"]) [1] 7.462887 Cvičení 2.5 V anglosaských zemích se teploty stále hojně vyjadřují ve stupních Fahrenheita. o navrhněte funkci, která bude konvertovat stupně Fahrenheita na stupně Celsia o vyzkoušejte si, jak funkce pracuje, na předcházejícím diagramu kolik je ve stupních Celsia 40, 98.6 a 212 F? o vypište konverzní tabulku Fahrenheit Celsius pro 0, 10, 220 F a zobrazte data graficky Fahrenheit -40 0 Freezing 32 Human body temperature Boiling 80 98.6 120 160 200 212-40 Celsius -20 20 0 37 40 60 80 100 Obr. 2.9 Graficky vyjádřený vztah mezi Fahrenheitovou a Celsiovou stupnicí Fahrenheit2Celsius<-function(x){ a<-100/(212-32) b<-100-a*212 z<-a*x+b return(z) > Fahrenheit2Celsius(c(-40,98.6,212)) [1] -40 37 100 > x<-seq(0,220,by=10) > y<-fahrenheit2celsius(x) > names(y)<-x Celsius -20 0 20 40 60 80 100 0 50 100 150 200 Fahrenheit Obr. 2.10 Konverze Fahrenheit Celsius > y 0 10 20 30 40 50 60-17.777778-12.222222-6.666667-1.111111 4.444444 10.000000 15.555556 70 80 90 100 110 120 130 21.111111 26.666667 32.222222 37.777778 43.333333 48.888889 54.444444 140 150 160 170 180 190 200 60.000000 65.555556 71.111111 76.666667 82.222222 87.777778 93.333333 210 220 98.888889 104.444444 > plot(x,y,xlab="fahrenheit",ylab="celsius",type="o") > # Obr. 2.10

2/13 2.7.1 Argumenty funkcí Existují dva způsoby, jak specifikovat parametry funkce jazyka R. Buď je lze uvádět v pořadí stejném, jakém byly definovány, když byla funkce navržena. Nebo je možno používat pojmenované parametry ve formě jméno.argumentu = hodnota, a ty lze pak uvádět v náhodném pořadí. Při psaní uživatelských funkcí lze uvádět implicitní hodnoty, jako v následujícím případě: > my.plot<-function(x,y,pch="+",col="red"){ > tělo funkce > a potom může být taková funkce volána řadou způsobů, například: > my.plot(x,y) # plots data as red crosses > my.plot(x,y,"o") # plots data as red circles > my.plot(x,y,col="blue") # plots data as blue crosses pak je také zřejmé, že příkaz: > my.plot(x,y,"blue") nebude fungovat správně. Dobré je si uvědomit, že v R má většina argumentů funkcí přiřazeny nějaké rozumné implicitní hodnoty. Ty obvykle stačí pro většinu aplikací a běžný uživatel nemusí o jejich existenci vůbec vědět. Když je třeba, příkaz args vypíše všechny argumenty dané funkce: args (jméno_funkce) kde jméno_funkce odkazuje na existující funkci, například: > args("my.plot") function (x, y, pch = "+", col = "red") 2.7.2 Přiřazení ve funkcích Důležité je si uvědomit, že všechny proměnné definované v rámci uživatelské funkce (v příkladu funkce pro výpočet směrodatné odchylky to byly x a z) jsou lokální. To znamená, že všechna přiřazení jsou jen přechodné povahy, a po opuštění funkce jsou ztracena. Proto taky je třeba rozlišovat proměnné, byť se stejným jménem, ve funkci a v prostředí, z kterého byla funkce volána. Ve (vzácných) případech kdy je třeba měnit hodnotu globální proměnné, lze použít operátor << : > x<<-"hello"