R - programovací jazyk: Porovnání verzí

 
(Není zobrazeno 29 mezilehlých verzí od stejného uživatele.)
Řádek 1: Řádek 1:
'''R''' je volně (zdarma) dostupný programovací jazyk. Je specializovaný hlavně na statické výpočty, statickou analýzu dat a jejich grafické zobrazení. Výstupem jsou tedy nejčastěji 2D a 3D grafy. Podporuje také matice a maticové výpočty stejně jako podobný MATLAB. R se stalo standardem v oblastech statistiky a jeho prostředí je stále rozšiřováno přímo uživateli eRka. Je tím myšleno rozšíření funkcí R - tzv. knihovny, nebo také balíčky (packages).  
+
'''R je volně (zdarma) dostupný [[programovací jazyk]]'''. Je specializovaný hlavně na statické výpočty, statickou [[21. Sekundární analýza dat a metaanalýza|analýzu dat]] a jejich [[Grafické zobrazení dat|grafické zobrazení]]. Výstupem jsou tedy nejčastěji 2D a 3D grafy. Podporuje také [[Matematické vzorce (LaTeX)|matice]] a maticové výpočty stejně jako podobný [https://cs.wikipedia.org/wiki/MATLAB MATLAB]. R se stalo standardem v oblastech [[Statistika|statistiky]] a jeho prostředí je stále rozšiřováno přímo uživateli eRka. Je tím myšleno rozšíření funkcí R o tzv. knihovny, nebo také balíčky (packages).  
  
 
=== Balíčky/Packages ===  
 
=== Balíčky/Packages ===  
 
Sada základních balíčků je automaticky instalována společně s R. Dále je k dispozici více než 11 000 balíčků volně ke stáhnutí.  
 
Sada základních balíčků je automaticky instalována společně s R. Dále je k dispozici více než 11 000 balíčků volně ke stáhnutí.  
Balíčky dat jsou prakticky funkce navíc, které jazyk rozšiřují o další možnosti. Jedná se například o nástroj na import či export dat, tvorba reportů, nebo speciálně vytvořené balíčky pro určitý druh projektu/projekt, ke kterému  je R využíváno.  
+
'''Balíčky dat jsou prakticky funkce navíc''', které jazyk rozšiřují o další možnosti. Jedná se například o nástroj na import či export [[Data|dat]], tvorba reportů, nebo speciálně vytvořené balíčky pro určitý druh projektu/projekt, ke kterému  je R využíváno.  
Jsou k dispozici např. na stránkách Comprehensive R Archive Network (CRAN), Bioconductor (projekt, nabízí balíčky v oblasti pro analýzu genomických dat), GitHub, Omegahat...atd.  
+
Jsou k dispozici např. na stránkách Comprehensive R Archive Network (CRAN), Bioconductor (projekt, nabízí balíčky v oblasti analýzy genomických dat), [https://cs.wikipedia.org/wiki/GitHub GitHub], Omegahat...atd.  
  
Programovací jazyk R je opravdu pouze jazyk, tzv. interpretovaný jazyk - tzn. přístup pomocí příkazového řádku (interpret). Potřebuje tedy nějaké grafické uživatelské rozhraní (GUI - Graphical User Interface) ve kterém může uživatel R s jazykem pracovat. Je možné ho instalovat na operační systémy UNIX, Windows i MacOS.
+
Programovací jazyk R je opravdu pouze jazyk, tzv. ''interpretovaný jazyk'' - tzn. přístup pomocí příkazového řádku (interpret). Potřebuje tedy nějaké '''grafické [[Uživatelské rozhraní|uživatelské rozhraní''']] (GUI - Graphical User Interface) ve kterém může uživatel R s jazykem pracovat. Je možné ho instalovat na [[Operační systém|operační systémy]] UNIX, Windows i MacOS.
  
 
=== Grafické uživatelské rozhraní (GUI) ===
 
=== Grafické uživatelské rozhraní (GUI) ===
 
* '''RKWard'''
 
* '''RKWard'''
* '''RStudio''' (multiplatformní open-source IDE - Integrated Development Environmenty)  
+
* '''RStudio''' (multiplatformní [[open source]] IDE - Integrated Development Environmenty)  
 
* '''Deducer''' (pro analýzu dat)  
 
* '''Deducer''' (pro analýzu dat)  
 
* '''JAVA GUI pro R - JGR'''  
 
* '''JAVA GUI pro R - JGR'''  
 
* '''Rattle GUI'''
 
* '''Rattle GUI'''
* '''ReExcel''' (propojení aplikace Microsoft Excel s jazykem R)  
+
* '''ReExcel''' (propojení aplikace [[Microsoft Office|Microsoft Excel]] s jazykem R)  
  
 
=== Kladné vlastnosti ===
 
=== Kladné vlastnosti ===
Řádek 24: Řádek 24:
 
=== Důležité milníky ===
 
=== Důležité milníky ===
 
* '''1997 - ''' Vznik poslední funkční verze jazyka R, který je vyvinut z jazyka S. Je jeho nástupce, akorát má svobodnou licenci na rozdíl od S.  
 
* '''1997 - ''' Vznik poslední funkční verze jazyka R, který je vyvinut z jazyka S. Je jeho nástupce, akorát má svobodnou licenci na rozdíl od S.  
* Téhož roku se R stává oficiálně součástí projektu [http://www.gnu.org/ GNU] (projekt zaměřený na svobodný software, inspirován OS unixového typu - OS se svobodnou licencí).  
+
* Téhož roku se R stává oficiálně součástí projektu [http://www.gnu.org/ GNU] (projekt zaměřený na svobodný software, inspirován [[Linux|OS unixového typu]] - OS se svobodnou licencí).  
 
* '''2001 - ''' První verze pro MacOS.  
 
* '''2001 - ''' První verze pro MacOS.  
 
* '''2005 - ''' Podpora kódování UTF-8 (způsob kódování znaků - zahrnuje čtení českých znaků) a počátky internacionalizace a lokace pro různé jazyky.  
 
* '''2005 - ''' Podpora kódování UTF-8 (způsob kódování znaků - zahrnuje čtení českých znaků) a počátky internacionalizace a lokace pro různé jazyky.  
Řádek 31: Řádek 31:
 
== Datové struktury  a typy ==
 
== Datové struktury  a typy ==
  
=== Datové struktury ===  
+
=== [[Datové struktury]] ===  
Zahrnuje vektory, matice, datové rámce (tabulky podobné tabulkám v relačních databázích), listy (seznamy). Neobsahuje skaláry, zde jsou reprezentovány jako vektory s délkou jedna.  
+
Zahrnuje ''[[Vektorová grafika|vektory]], matice, datové rámce (tabulky podobné tabulkám v [[Relační databáze|relačních databázích]]), listy (seznamy), pole, faktory''. Neobsahuje skaláry, zde jsou reprezentovány jako vektory s délkou jedna.  
  
 
=== Datové typy ===
 
=== Datové typy ===
 
Obsahuje základních 5 typů. Pokud si není uživatel jistý jaký typ dat vektor/tabulka/list obsahuje, může tuto informaci rychle zjistit pomocí funkce '''class()'''
 
Obsahuje základních 5 typů. Pokud si není uživatel jistý jaký typ dat vektor/tabulka/list obsahuje, může tuto informaci rychle zjistit pomocí funkce '''class()'''
* '''1. numeric'''
+
* '''1.''' numeric
* '''2. integer'''
+
* '''2.''' integer
* '''3. complex'''
+
* '''3.''' complex
* '''4. logical'''
+
* '''4.''' logical
* '''5. character'''
+
* '''5.''' character
  
 
==== Numeric ====
 
==== Numeric ====
 +
'''Reálná čísla - tzn. všechna kladná, záporná, celá i desetinná čísla.''' U desetinných čísel je třeba dávat pozor na psaní teček mezi číslicemi, nikoli čárek. Není to český program a tečky nepochopí. Při exportu českých dat, která čárky místo teček obsahují, není třeba vše v dokumentu přepisovat, stačí ve skriptu upozornit program pomocí funkce separated '''sep = " , "'''.
 +
 +
př.: '''> 1.234'''
 +
 +
==== Integer ====
 +
Pouze celá čísla.
 +
 +
==== Complex ====
 +
Numerická hodnota je doplněna o komplexní jednotku. Např. ''i''. Vždy musí obsahovat numerickou hodnotu i kdyby se jednalo o ''1i''.
 +
 +
př. : '''> 1 + 2i'''
 +
 +
==== Logical ====
 +
Logické hodnoty - '''TRUE/FALSE''' nebo jen '''T/F'''.  (Pozor! Jazyk R je citlivý na velká a
 +
malá písmena, proto logické hodnoty nelze psát jinak než uvedeným způsobem.)
 +
Logické hodnoty se používají pro některé argumenty funkcí, jsou výsledkem testování výrazů.<ref>[http://www.ms.mff.cuni.cz/~obdrzalp/NMAI059/Navod_R_cesky.pdf Konečná, Kateřina - Koláček, Jan. ''Jak pracovat s jazykem R.'']</ref>
 +
 +
př.:
 +
 +
'''> 2.3 > 3'''
 +
 +
'''[1] FALSE'''
 +
 +
==== Character ====
 +
Slovní řetězce, které se používají pro textové hodnoty (popisky, názvy atd.). Řetězec musí být zadán do jednoduchých apostorfů (''' ' ''') nebo do dvojitých uvozovek ('''"''').
 +
př.: '''> r <- "retezec"'''
 +
 +
== [[Syntaxe]] ==
 +
=== Operátory ===
 +
* Matematické operátory, které jsou potřebné k výpočtům. Je to '''+, -, *, /,'''
 +
* Operátor přiřazení '''<-'''
 +
* [[Booleovské operátory|Booleovské (logické) operátory]] AND ('''&'''), OR ('''|'''), NOT ('''!'''), EQUAL ('''=='''). Ve složitějších příkladech, které obsahují operátory & i | má AND vždy přednost.
 +
 +
=== Název ===
 +
Řetězec názvu se může skládat z písmen '''a - z''' nebo '''A - Z'''. Může obsahovat také číslice '''0 - 9''', tečky a podtržítka, ale '''musí začínat písmenem'''.
 +
Víceslovný název se odděluje tečkou nebo podtržítkem. (př.: ''Chlapci.prumer / chlapci_prumer'')
 +
 +
=== Funkce ===
 +
Funkce se vždy skládá z názvu funkce, následuje závorka, ve které je argument. Závorka může společně s argumentem obsahovat výpočty, hodnoty...atd.
 +
 +
== Nejčastější operace ==
 +
 +
=== Sekvence ===
 +
Pokud je potřeba vytvořit sekvenci čísel je možné napsat pouze '''1 : 20''' a po zmáčknutí klávesy ENTER nám program ukáže sekvenci čísel 1 - 20. Je možné sekvence tvořit i pozpátku '''15 : 1'''.
 +
Pokud chceme provést složitější operaci co se týče sekvencí, je možní použít funkce '''seq()''' nebo '''rep()'''.
 +
<br />
 +
==== seq() ====
 +
Lze použít například pokud potřebuji udělat sekvenci čísel jejíž posloupnost půjde po polovinách.
 +
př.: '''seq(0, 10, by = 0.5)'''
 +
 +
Mohu také chtít aby mi vyšla náhodná desetinná čísla tak, že zadám pouze rozsah a kolik čísel by výsledek měl obsahovat.
 +
př.: '''seq(5, 10, length = 30)'''
 +
 +
==== rep() ====
 +
Funkce replay se používá k opakování hodnot v sekvencích. Pokud chci třeba vektor, kde se opakuje 1, 2, 3 stále dokola a má délku 10, nebo opakování 10x0, 10x1 a 10x2 přímo za sebou.
 +
př.:
 +
1. '''rep(c(1, 2, 3), times = 10)'''
 +
2. '''rep(c(0, 1, 2), each = 10)'''
 +
 +
=== Vektory ===
 +
Vektory jsou nejčastěji používanou datovou strukturou v R a rozlišují se na '''atomické''', které obsahují pouze jeden datový typ a na '''seznamy''', které mohou obsahovat více datových typů dohromady.
 +
==== Vytváření vektorů ====
 +
Vektory se tvoří prostřednictvím funkce '''c''' = ''Concatenate''.
 +
př.:'''c(0.5, 0.6), c(TRUE, FALSE), c(T, F), c("a", "b", "cdef")'''
 +
 +
==== Výřezy proměnných z vektoru ====
 +
Pokud mám vektor '''x''' a chci z něj vyjmout pouze část. př.: '''x[1 : 10]'''. Tímto dostanu pouze prvních deset elementů z x. Ale nemohu s těmi elementy samostatně manipulovat, stále jsou součástí vektoru x. Pokud z nich chci udělat samostatnou část, musím použít dvojité závorky '''[[ ]]'''. Poté mohu s hodnotou pracovat.
 +
 +
Výřezy mohou být i se všemi elementy kromě jednoho. př.: '''x[-1]''' = vše kromě prvního elementu.
 +
 +
Díky výřezům lze zobrazit všechny hodnoty kromě NA (not avariable - prázdná hodnota). př.: '''x [!is.na(x)]''' (vypíše elementy z x, který nejsou NA.)
 +
 +
==== Vektory - character strings ====
 +
Vytvořím-li vektor s názvem My_char a chci aby jeho hodnoty "my" "name" "is" "Jana" vytvořily plynulou větu (tzn. Z vektoru o délce 3 udělám řetězec o délce jedna), musím použít funkci '''paste()''' a argument '''collapse'''.
 +
<br />
 +
př.: '''My_char <- c("My", "name", "is", "Jana"); paste(My_char, collapse = " ")'''; Výsledkem je "My name is Jana"
 +
 +
=== Stahování balíčků ===
 +
Pro každé stažení balíčku pro jazyk R, které jsou volně dostupné pro všechny uživatele R je nutné zadat příkaz '''Install.packages(názevbalíčku)''' a mít v tu chvíli připojení k internetu, aby se mohl balíček nainstalovat. Poté co je možné normálně pracovat bez připojení a kdykoliv balíček vyvolat pomocí funkce '''library()'''.
 +
 +
== Zdroje ==
 +
=== Použitá literatura ===
 +
* Konečná, Kateřina - Koláček, Jan. ''Jak pracovat s jazykem R.'' Dostupné z: http://www.ms.mff.cuni.cz/~obdrzalp/NMAI059/Navod_R_cesky.pdf
 +
=== Reference ===
 +
<references />
 +
 +
== Odkazy ==
 +
* [[Programovací jazyk]]
 +
* [[Grafické zobrazení dat]]
 +
* [[Matematické vzorce (LaTeX)]]
 +
* [[Statistika]]
 +
* [[Uživatelské rozhraní]]
 +
* [[Data]]
 +
* [[Booleovské operátory]]
 +
* [[Relační databáze]]
 +
* [[Vektorová grafika]]
 +
* [[Datové struktury]]
 +
* [[Open source]]
 +
 +
KS: Programovací jazyk, Program, R, Rko, Open source, vektory, posloupnost, sekvence, datové struktury, datové typy, data, tabulky, funkce, výřezy z vektoru

Aktuální verze z 23. 10. 2020, 13:04

R je volně (zdarma) dostupný programovací jazyk. Je specializovaný hlavně na statické výpočty, statickou analýzu dat a jejich grafické zobrazení. Výstupem jsou tedy nejčastěji 2D a 3D grafy. Podporuje také matice a maticové výpočty stejně jako podobný MATLAB. R se stalo standardem v oblastech statistiky a jeho prostředí je stále rozšiřováno přímo uživateli eRka. Je tím myšleno rozšíření funkcí R o tzv. knihovny, nebo také balíčky (packages).

Balíčky/Packages

Sada základních balíčků je automaticky instalována společně s R. Dále je k dispozici více než 11 000 balíčků volně ke stáhnutí. Balíčky dat jsou prakticky funkce navíc, které jazyk rozšiřují o další možnosti. Jedná se například o nástroj na import či export dat, tvorba reportů, nebo speciálně vytvořené balíčky pro určitý druh projektu/projekt, ke kterému je R využíváno. Jsou k dispozici např. na stránkách Comprehensive R Archive Network (CRAN), Bioconductor (projekt, nabízí balíčky v oblasti analýzy genomických dat), GitHub, Omegahat...atd.

Programovací jazyk R je opravdu pouze jazyk, tzv. interpretovaný jazyk - tzn. přístup pomocí příkazového řádku (interpret). Potřebuje tedy nějaké grafické uživatelské rozhraní (GUI - Graphical User Interface) ve kterém může uživatel R s jazykem pracovat. Je možné ho instalovat na operační systémy UNIX, Windows i MacOS.

Grafické uživatelské rozhraní (GUI)

  • RKWard
  • RStudio (multiplatformní open source IDE - Integrated Development Environmenty)
  • Deducer (pro analýzu dat)
  • JAVA GUI pro R - JGR
  • Rattle GUI
  • ReExcel (propojení aplikace Microsoft Excel s jazykem R)

Kladné vlastnosti

  • Silné objektově orientované programování na rozdíl od většiny ostatních statických počítačových jazyků.
  • Statická grafika díky které generuje grafy. Zahrnuje také matematické symboly.
  • Má svůj vlastní formát podobný LaTexu.
  • Kód je možné propojit s dalšími jazyky (C, C++, Fortram).

Důležité milníky

  • 1997 - Vznik poslední funkční verze jazyka R, který je vyvinut z jazyka S. Je jeho nástupce, akorát má svobodnou licenci na rozdíl od S.
  • Téhož roku se R stává oficiálně součástí projektu GNU (projekt zaměřený na svobodný software, inspirován OS unixového typu - OS se svobodnou licencí).
  • 2001 - První verze pro MacOS.
  • 2005 - Podpora kódování UTF-8 (způsob kódování znaků - zahrnuje čtení českých znaků) a počátky internacionalizace a lokace pro různé jazyky.
  • 2010 - Podpora pro 64 bitové MS Windows.

Datové struktury a typy

Datové struktury

Zahrnuje vektory, matice, datové rámce (tabulky podobné tabulkám v relačních databázích), listy (seznamy), pole, faktory. Neobsahuje skaláry, zde jsou reprezentovány jako vektory s délkou jedna.

Datové typy

Obsahuje základních 5 typů. Pokud si není uživatel jistý jaký typ dat vektor/tabulka/list obsahuje, může tuto informaci rychle zjistit pomocí funkce class()

  • 1. numeric
  • 2. integer
  • 3. complex
  • 4. logical
  • 5. character

Numeric

Reálná čísla - tzn. všechna kladná, záporná, celá i desetinná čísla. U desetinných čísel je třeba dávat pozor na psaní teček mezi číslicemi, nikoli čárek. Není to český program a tečky nepochopí. Při exportu českých dat, která čárky místo teček obsahují, není třeba vše v dokumentu přepisovat, stačí ve skriptu upozornit program pomocí funkce separated sep = " , ".

př.: > 1.234

Integer

Pouze celá čísla.

Complex

Numerická hodnota je doplněna o komplexní jednotku. Např. i. Vždy musí obsahovat numerickou hodnotu i kdyby se jednalo o 1i.

př. : > 1 + 2i

Logical

Logické hodnoty - TRUE/FALSE nebo jen T/F. (Pozor! Jazyk R je citlivý na velká a malá písmena, proto logické hodnoty nelze psát jinak než uvedeným způsobem.) Logické hodnoty se používají pro některé argumenty funkcí, jsou výsledkem testování výrazů.[1]

př.:

> 2.3 > 3

[1] FALSE

Character

Slovní řetězce, které se používají pro textové hodnoty (popisky, názvy atd.). Řetězec musí být zadán do jednoduchých apostorfů ( ' ) nebo do dvojitých uvozovek ("). př.: > r <- "retezec"

Syntaxe

Operátory

  • Matematické operátory, které jsou potřebné k výpočtům. Je to +, -, *, /,
  • Operátor přiřazení <-
  • Booleovské (logické) operátory AND (&), OR (|), NOT (!), EQUAL (==). Ve složitějších příkladech, které obsahují operátory & i | má AND vždy přednost.

Název

Řetězec názvu se může skládat z písmen a - z nebo A - Z. Může obsahovat také číslice 0 - 9, tečky a podtržítka, ale musí začínat písmenem. Víceslovný název se odděluje tečkou nebo podtržítkem. (př.: Chlapci.prumer / chlapci_prumer)

Funkce

Funkce se vždy skládá z názvu funkce, následuje závorka, ve které je argument. Závorka může společně s argumentem obsahovat výpočty, hodnoty...atd.

Nejčastější operace

Sekvence

Pokud je potřeba vytvořit sekvenci čísel je možné napsat pouze 1 : 20 a po zmáčknutí klávesy ENTER nám program ukáže sekvenci čísel 1 - 20. Je možné sekvence tvořit i pozpátku 15 : 1. Pokud chceme provést složitější operaci co se týče sekvencí, je možní použít funkce seq() nebo rep().

seq()

Lze použít například pokud potřebuji udělat sekvenci čísel jejíž posloupnost půjde po polovinách. př.: seq(0, 10, by = 0.5)

Mohu také chtít aby mi vyšla náhodná desetinná čísla tak, že zadám pouze rozsah a kolik čísel by výsledek měl obsahovat. př.: seq(5, 10, length = 30)

rep()

Funkce replay se používá k opakování hodnot v sekvencích. Pokud chci třeba vektor, kde se opakuje 1, 2, 3 stále dokola a má délku 10, nebo opakování 10x0, 10x1 a 10x2 přímo za sebou. př.: 1. rep(c(1, 2, 3), times = 10) 2. rep(c(0, 1, 2), each = 10)

Vektory

Vektory jsou nejčastěji používanou datovou strukturou v R a rozlišují se na atomické, které obsahují pouze jeden datový typ a na seznamy, které mohou obsahovat více datových typů dohromady.

Vytváření vektorů

Vektory se tvoří prostřednictvím funkce c = Concatenate. př.:c(0.5, 0.6), c(TRUE, FALSE), c(T, F), c("a", "b", "cdef")

Výřezy proměnných z vektoru

Pokud mám vektor x a chci z něj vyjmout pouze část. př.: x[1 : 10]. Tímto dostanu pouze prvních deset elementů z x. Ale nemohu s těmi elementy samostatně manipulovat, stále jsou součástí vektoru x. Pokud z nich chci udělat samostatnou část, musím použít dvojité závorky [[ ]]. Poté mohu s hodnotou pracovat.

Výřezy mohou být i se všemi elementy kromě jednoho. př.: x[-1] = vše kromě prvního elementu.

Díky výřezům lze zobrazit všechny hodnoty kromě NA (not avariable - prázdná hodnota). př.: x [!is.na(x)] (vypíše elementy z x, který nejsou NA.)

Vektory - character strings

Vytvořím-li vektor s názvem My_char a chci aby jeho hodnoty "my" "name" "is" "Jana" vytvořily plynulou větu (tzn. Z vektoru o délce 3 udělám řetězec o délce jedna), musím použít funkci paste() a argument collapse.
př.: My_char <- c("My", "name", "is", "Jana"); paste(My_char, collapse = " "); Výsledkem je "My name is Jana"

Stahování balíčků

Pro každé stažení balíčku pro jazyk R, které jsou volně dostupné pro všechny uživatele R je nutné zadat příkaz Install.packages(názevbalíčku) a mít v tu chvíli připojení k internetu, aby se mohl balíček nainstalovat. Poté co je možné normálně pracovat bez připojení a kdykoliv balíček vyvolat pomocí funkce library().

Zdroje

Použitá literatura

Reference

Odkazy

KS: Programovací jazyk, Program, R, Rko, Open source, vektory, posloupnost, sekvence, datové struktury, datové typy, data, tabulky, funkce, výřezy z vektoru