Hlavní navigace

Zabudnite na gnuplot, prichádza "R"

11. 7. 2002
Doba čtení: 4 minuty

Sdílet

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.


CS24_early

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?

Byl pro vás článek přínosný?

Autor článku