Hlavní navigace

Zabudnite na gnuplot, prichádza "R"

Rado Bonk 11. 7. 2002

Pri používaní gnuplotu pre tvorbu grafiky do LaTeXovských dokumentov treba vždy pripraviť dátový súbor v inom prostredí. To je stratou času a navyše pri zložitejších analýzach aj náročné. Programovací štatistický jazyk a zároveň prostredie "R", dokáže pripraviť aj dáta, aj grafiku. Ale najsilnejší je v analýze dát. Dokáže toho viacej, ako gnuplot, oveľa viacej.

Čo je to eRko, ako vzniklo a načo sa dá používať.

R je integrované prostredie pre analýzu dát, štatistické a matematické výpočty a produkciu grafiky v tlačovej kvalite. Áno, R je programovací jazyk, ktorý obsahuje podmienky, cykly, užívateľom definované funkcie, a nástroje pre vstup a výstup dát. To však neznamená, že ten, kto ho chce používať, musí vedieť programovať. Stačí, ak niekto vie, akú informáciu chce zo svojich dát získať a po dvoch-troch príkazoch má na obrazovke grafický výstup a tabuľku so základnou štatistikou. Na druhej strane komu nestačia vstavané funkcie, môže si naozaj jednoducho napísať vlastné, R spraví presne to čo mu poviete.


R je výsledkom GNU úsilia a ide o implementáciu štatistického jazyka S, ktorý bol vyvinutý v Bell Laboratories pánmi R. Beckerom, J. Chambersom a A. Wilkesom. Prostredie R je dostupné ako Free Softvare pod GNUGeneral Public License. Je dostupný pre väčšinu systémov typu UNIX/Linux, systémy Macintosh a tiež pre systémy rodiny Windows.

Ak niekoho zaujíma veľkosť databázy, s ktorou R ešte dokáže efektívne pracovať, tak v manuáloch sa uvádza matica so 100 000 riadkami a 20 stĺpcami. To by mohlo pre začiatok stačiť. Neskúšal by som to však z jedného dôvodu. Základná pracovná jednotka, s ktorou R pracuje, sa volá objekt. Ide jednoducho o tabuľku, alebo iný súbor dát. Objektov môže by v jednom R sedení niekoľko (napr. tabuľka, kde je nadmorská výška bodu, jeho sklon, pH pôdy v bode, obsah humusu v bode, alebo tabuľka s mestami a vývojom počtu obyvateľov v nich za roky 1867–2000) a pri každom spustení eRka, sa tieto objekty natiahnu do pamäte RAM. Aj keď od verzie 1.2.0 existuje účinný „garbage collector“, ktorý automaticky alokuje veľkosť pamäte potrebnej pre objekty, každá ďalšia operácia produkuje nové dočasné objekty a kapacita RAM nemusí stačit. Nech vás to neodradí, 64–128 MB RAM však pohodlne stačí aj pre analýzy pracujúce s veľkým počtom pozorovaní.


Prvé sedenie v eRku.

Poďme si teraz ukázať príkladové R sedenie. Predpokladajme, že máme eRko nainštalované na našom počítači, alebo serveri. Spustíme ho príkazom:

Tabulka č. 282
[rado@templar rado]$ R

Objaví sa príkazová konzola. Systém vypíše uvítacie hlášky a čaká na príkazy promptom:

Tabulka č. 283
>

Z hlášok sa dozvieme, akú verziu používame, ako vyvolať nápovedu, a čo sa týka syntaxe tiež že príkazy (funkcie) v eRku majú nasledovnú formu:

Tabulka č. 284
> prikaz()

Pozornejší hneď zistili, že sa použil príkaz

Tabulka č. 285
> ls()

ktorý vypíše zoznam objektov v danom R sedení. Sedenie sa končí príkazom:

Tabulka č. 286
> quit()
Save workspace image? [y/n/c]:

príkaz ukončí sedenie a spýta sa nás či chceme uložiť image. Treba zvoliť „y“. Systém tak vytvorí v adresári, z ktorého sa spustilo eRko, dva súbory:

  • .RData -v tomto súbore sú uložené všetky objekty, ktoré sa v predošlom sedení používali.
  • .Rhistory – tu je uložená história príkazov.

Keď sa nabudúce spustí eRko z toho istého adresára, natiahnu sa všetky objekty (dáta) zo súboru .RData a zoznam príkazov z .Rhistory. Z toho vyplýva, že pri odlišných projektoch je lepšie spúšťať eRko z nového adresára, aby sme aj po piatom spustení vedeli, čo kde máme. Pozrime sa na dalšie R sedenie, vytvorme nový objekt, vypočítajme jednoduché štatistiky, a prikážme eRku vygenerovať grafický výstup.

Tabulka č. 287
[rado@templar R]$ R
> 12+14
[1] 26
> r <- 22
> obsah.kruhu <- pi*r^2
> obsah.kruhu
[1] 1520.531

Čo sme spravili: Najprv sme zadali v prompte operáciu súčtu, systém vypísal výsledok. Potom sme objektu „r“ priradili hodnotu „22“, a objektu „obsah.kruhu“ zasa výsledok matematickej operácie. Po vypísaní mena objektu do promptu eRka, sme získali výpis objektu, teda obsah kruhu. Už vieme, že hodnoty sa objektom priradzujú cez operátor „<-“, alebo „->“ ich obsah získame zasa zadaním mena objektu. Vieme tiež, že eRko pozná konštantu „pi“. Doteraz sme pracovali len s objektmi, ktoré mali len jeden člen (číslo, reťazec). Takto vygenerujeme objekt s vyšším počtom členov:

Tabulka č. 288
> r1 <- c(1,2,3,4,5,6,7)
> r1
[1] 1 2 3 4 5 6 7
> r2 <- c(8:14)
> r2
[1]  8  9 10 11 12 13 14

Obidva takto vytvorené objekty sa nazývajú vektor. Vektor „r2“ má rozsah od 8 do 14 (to vďaka dvojbodke pri jeho definovaní). Skúsme teraz oba vektory sčítať a potom vytvoriť nový vektor, ktorý bude obsahovať hodnoty vektorov „r1“ a „r2“. Všimnite si rozdiely.

Tabulka č. 289
> r3 <- r1+r2
> r3
[1]  9 11 13 15 17 19 21
> r4 <- c(r1,r2)
> r4
[1]  1  2  3  4  5  6  7  8  9 10 11 12 13 14

Použijme teraz vektor „r4“ ako vektor polomerov, vypočítajme obsah kruhu a závislosť zobrazme graficky.

Tabulka č. 290
> ss <- pi*((r4)^2)

> ss
[1]   3.141593  12.566371  28.274334  50.265482  78.539816
            113.097336
[7] 153.938040 201.061930 254.469005 314.159265 380.132711
             452.389342
[13] 530.929158 615.752160
> plot(ss ~ r4, pch=16)

Príkazom „plot“ sme vykreslili závislosť obsahu kruhu od veľkosti polomeru. eRko má oveľa silnejšie grafické možnosti, na úvod by však toto mohlo stačiť. Len pripomeniem, že graf, ktorý vidíte sa dá malým trikom uložiť do eps súboru a potom už nič nebráni, aby sa vložil do LaTeXovského dokumentu.


Nabúdúce si ukážeme, ako sa eRko inštaluje, vrátane prídavných balíkov, povieme si niečo viacej o vektoroch, naučíme sa ako importovať dáta v rôznych formátoch, a nebúde chýbať grafika. Skúste teraz vyskúšať príkaz:

Tabulka č. 291
> summary(r4)

Celkom dobré, čo poviete?

Našli jste v článku chybu?

18. 7. 2002 22:33

Rompi (neregistrovaný)

Urcite bych se primluvil za ten MuPAD, prijde mi fakt dobrej a par omezeni v licenci se bezneho uzivatele ani nedotkne. Navic ma pekne GUI a dost huste zvlada nejenom symbolicke "vypocty", ale i algebraicke (zajimalo by nekoho, kolik presne je treba 123456^123456 ? Fakt hodne...)

12. 7. 2002 12:22

Jan (neregistrovaný)

No on GNUPLOT neni jen na vykreslovani dat, ale pravda je, ze clovek by to mel hodnotit spise komplexne a tak musi pocitat z GNUFITem a ten uz toho umi podstatne vic. Ja s tim prosel na vejsce vsechny protokoly k praktikum a stacilo :) Pravda pak se zacal vseobecne sirit Origin pod winama coz je na ovladani nekde jinde.

Podnikatel.cz: Přehledná titulka, průvodci, responzivita

Přehledná titulka, průvodci, responzivita

Lupa.cz: Slevové šílenství je tu. Kde nakoupit na Black Friday?

Slevové šílenství je tu. Kde nakoupit na Black Friday?

Root.cz: Vypadl Google a rozbilo se toho hodně

Vypadl Google a rozbilo se toho hodně

Podnikatel.cz: Vládu obejde, kvůli EET rovnou do sněmovny

Vládu obejde, kvůli EET rovnou do sněmovny

DigiZone.cz: Česká televize mění schéma ČT :D

Česká televize mění schéma ČT :D

Vitalia.cz: Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Měšec.cz: U levneELEKTRO.cz už reklamaci nevyřídíte

U levneELEKTRO.cz už reklamaci nevyřídíte

DigiZone.cz: Recenze Westworld: zavraždit a...

Recenze Westworld: zavraždit a...

Podnikatel.cz: Víme první výsledky doby odezvy #EET

Víme první výsledky doby odezvy #EET

120na80.cz: Pánové, pečujte o svoje přirození a prostatu

Pánové, pečujte o svoje přirození a prostatu

Lupa.cz: Není sleva jako sleva. Jak obchodům nenaletět?

Není sleva jako sleva. Jak obchodům nenaletět?

Měšec.cz: Zdravotní a sociální pojištění 2017: Připlatíte

Zdravotní a sociální pojištění 2017: Připlatíte

Vitalia.cz: Paštiky plné masa ho zatím neuživí

Paštiky plné masa ho zatím neuživí

Lupa.cz: Google měl výpadek, nejel Gmail ani YouTube

Google měl výpadek, nejel Gmail ani YouTube

DigiZone.cz: Sony KD-55XD8005 s Android 6.0

Sony KD-55XD8005 s Android 6.0

Vitalia.cz: To není kašel! Správná diagnóza zachrání život

To není kašel! Správná diagnóza zachrání život

Podnikatel.cz: Na poslední chvíli šokuje vyjímkami v EET

Na poslední chvíli šokuje vyjímkami v EET

120na80.cz: Jak oddálit Alzheimera?

Jak oddálit Alzheimera?

Lupa.cz: UX přestává pro firmy být magie

UX přestává pro firmy být magie

Lupa.cz: Co se dá měřit přes Internet věcí

Co se dá měřit přes Internet věcí