R - programovací jazyk: Porovnání verzí
(Není zobrazeno 9 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 [[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é [[ | + | '''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 | + | 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í|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. | 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. | ||
Řádek 10: | Řádek 10: | ||
=== Grafické uživatelské rozhraní (GUI) === | === Grafické uživatelské rozhraní (GUI) === | ||
* '''RKWard''' | * '''RKWard''' | ||
− | * '''RStudio''' (multiplatformní open | + | * '''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''' | ||
Řá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), pole, faktory''. 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 === | ||
Řádek 48: | Řádek 48: | ||
==== Integer ==== | ==== Integer ==== | ||
− | celá čísla | + | Pouze celá čísla. |
==== Complex ==== | ==== Complex ==== | ||
Řádek 70: | Řádek 70: | ||
př.: '''> r <- "retezec"''' | př.: '''> r <- "retezec"''' | ||
− | == | + | == [[Syntaxe]] == |
=== Operátory === | === Operátory === | ||
* Matematické operátory, které jsou potřebné k výpočtům. Je to '''+, -, *, /,''' | * Matematické operátory, které jsou potřebné k výpočtům. Je to '''+, -, *, /,''' | ||
* Operátor přiřazení '''<-''' | * 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. | + | * [[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 === | === Název === | ||
Řádek 111: | Řádek 111: | ||
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. | 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 == | == Zdroje == | ||
=== Použitá literatura === | === 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 === | === Reference === | ||
<references /> | <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).
Obsah
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
- 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
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