Hlavní navigace

Programovací jazyk R: úvodní informace

 Autor: R Core Team
R je doménově specifickým jazykem pro zpracování a statistickou analýzu dat, včetně jejich grafického zobrazení, popř. zveřejnění na webu. V novém seriálu se seznámíme jak se samotným jazykem R, tak i s jeho rozsáhlým ekosystémem.
Pavel Tišnovský 1. 9. 2020
Doba čtení: 19 minut

Sdílet

Obsah

1. Programovací jazyk R (úvodní informace)

2. Popularita ekosystému postaveného okolo jazyka R

3. R, Python nebo Julia?

4. RStudio

5. R Markdown

6. Instalace základních systémových balíčků jazyka R

7. Spuštění interaktivního prostředí se smyčkou REPL

8. Získání nápovědy a příkladů použití

9. Instalace RStudia

10. Vybrané ukázky některých možností jazyka R

11. Vektory

12. Alternativní způsob konstrukce vektoru

13. Grafy

14. Histogramy

15. Balíček ggplot2, lineární regrese atd.

16. Spouštění skriptů psaných v R

17. Poznámka na závěr: seznamy v Pythonu versus vektory v R

18. Obsah následující části seriálu

19. Repositář s demonstračními příklady

20. Odkazy na Internetu

1. Programovací jazyk R (úvodní informace)

V právě začínajícím seriálu se seznámíme s doménově specifickým jazykem (DSL) pojmenovaným jednoduše R. Tento jazyk se používá převážně pro (před)zpracování dat, jejich statistickou analýzu, včetně jejich grafického zobrazení, která je typicky následovaná zveřejněním na webu ve formě statické nebo interaktivní prezentace. Tento pro vývojáře dosti neobvyklý jazyk, který se vyvíjí již 27 let, je rozšířen i ve vědecké komunitě a na CRAN (Comprehensive R Archival Network) je pro něj zveřejněno přes 16000 balíčků s různými oblastmi zaměření. Na R je ovšem nejdůležitější nikoli vlastní jazyk, ale ekosystém, který je okolo něho postaven. Proto bude tento seriál zaměřen více na popis ekosystému spíše, než na podrobný popis syntaxe a sémantiky R.

Obrázek 1: Logo programovacího jazyka R.

2. Popularita ekosystému postaveného okolo jazyka R

Jazyk R byl představen již před 27 lety a i přesto, že se jednalo a stále jedná o velmi rozšířený jazyk v oblasti zpracování dat, statistických analýz a vizualizace výsledků, stále jde o doménově specificky jazyk, který se příliš nehodí pro vývoj obecných aplikací vhodných pro produkční nasazení. Proto by se podle všech předpokladů neměl tento jazyk umisťovat na předních místech žebříčku oblíbenosti, popř. míry používání programovacích jazyků. Ovšem letos se, pravděpodobně v souvislosti s koronavirem a studiemi, které zkoumaly jeho rozšiřování, popř. s výzkumem léčby, dostal jazyk R na výsluní a umístil se na viditelném místě ve všech známých žebříčcích: Tiobe Indexu, PYPLu, analýza Stack Overflow atd. (ovšem současně se umístil i na předních místech žebříčku obávaných jazyků. I proto nemusí být na škodu znát alespoň jeho základy.

Obrázek 2: Žebříček nejžádanějších jazyků.
Zdroj: https://fossbytes.com/stack-overflow-most-loved-dreaded-wanted-programming-languages-in-2020/

Obrázek 3: Žebříček nejoblíbenějších jazyků.
Zdroj: https://fossbytes.com/stack-overflow-most-loved-dreaded-wanted-programming-languages-in-2020/

Obrázek 4: Ovšem i žebříček nejděsivějších jazyků.
Zdroj: https://fossbytes.com/stack-overflow-most-loved-dreaded-wanted-programming-languages-in-2020/

Obrázek 5: Výsledky dostupné na PYPL.
Zdroj: https://pypl.github.io/PYPL.html

Obrázek 6: Tiobe Index.
Zdroj: https://www.tiobe.com/tiobe-index/

Obrázek 7: Historie oblíbenosti jazyka R na Tiobe Indexu.
Zdroj: https://www.tiobe.com/tiobe-index/

Obrázek 8: Jazyk R na RedMonku.
Zdroj: https://redmonk.com/

Poznámka: každý z výše uvedených zdrojů používá odlišnou metodiku zpracování dat, proto jsou i výsledky značně odlišné.

3. R, Python nebo Julia?

Mnoho potenciálních uživatelů jazyka R se (a to zcela logicky) ptá, zda je výhodnější používat R, Python (doplněný typicky o Matplotlib, NumPy a SciPy) nebo programovací jazyk Julia. Každý z těchto jazyků má některé výhody a pochopitelně i nevýhody. Julia je z této trojice zdaleka nejrychlejší, ovšem prozatím nemá tak propracovaný ekosystém, minimálně v porovnání s R nebo Pythonem. To se odráží i na počtu dostupných balíčků, nabídek IDE, dostupné literatury apod. Python představuje k R velkou konkurenci v oblasti ML a především NLP – opět díky dostupnosti knihoven a frameworků. Ovšem R vyhrává v počtu dostupných balíčků, existencí balíčku ggplot2 (ten si popíšeme v samostatném článku) a taktéž tím, že většina výzkumných článků používá právě tento jazyk. Navíc jazyk R obsahuje možnost tvorby interaktivních webových prezentací s (taktéž interaktivními) grafy vytvářenými s využitím Shiny (i této technologii bude věnován samostatný článek).

4. RStudio

V základních balíčcích s programovacím jazykem R nalezneme „pouze“ interaktivní smyčku REPL, která umožňuje dialog mezi uživatelem a ekosystémem R. Ovšem v praxi se většinou setkáme s použitím integrovaného vývojového prostředí (jehož nedílnou součástí je ovšem i REPL). V případě jazyka R je tímto IDE RStudio, které je volně dostupné a otevřené (což je důležité mj. i v akademické sféře) a pochopitelně je nabízeno i pro Linux. RStudio existuje ve dvou variantách. První varianta se jmenuje RStudio Desktop a jedná se o plnohodnotné desktopové vývojové prostředí. Druhá varianta nese název RStudio Server. Tato varianta, jak již její název naznačuje, běží na serveru, přičemž na straně klienta je použit WWW prohlížeč, se všemi výhodami a nevýhodami, které toto řešení přináší. V navazujících článcích si použití RStudia, přesněji řečeno jeho desktopové varianty, ukážeme.

Obrázek 9: Prostředí RStudia.

Poznámka: existují i další IDE pro R, například R Tools for Visual Studio, Rattle, ESS (založeno na Emacsu), Radiant nebo r4intelliJ, ovšem zdá se, že majorita uživatelů R používá právě RStudio.

Obrázek 10: Prostředí RStudia.

5. R Markdown

Součástí ekosystému postaveného okolo programovacího jazyka R je i značkovací jazyk nazvaný R Markdown, který vychází z klasického Markdownu, ovšem navíc přidává možnost vkládat do dokumentu části skriptů psaných v R, které se vyhodnotí (včetně grafů) a zobrazí ve výsledném dokumentu (HTML, PDF, Word atd.). Navíc je možné s využitím Shiny a htmlwidgets vytvářet interaktivní dokumenty, což jsou vlastně živé prezentace s tabulkami a grafy. A právě existence Shiny s poměrně velkou pravděpodobností způsobila velký rozmach jazyka R v tomto roce v souvislosti s grafy a predikcemi šíření, popř. léčení koronaviru.

Obrázek 11: R Markdown notebook.
Zdroj: dokumentace k projektu dostupná na https://bookdown.org/yihu­i/rmarkdown/notebook.html

Poznámka: nabízí se zde porovnání s Jupyter Notebookem, ovšem práce s R Markdownem je poněkud odlišná a podobá se spíše psaní článků či knih.

6. Instalace základních systémových balíčků jazyka R

Základní systémové balíčky programovacího jazyka R a vlastně i celého ekosystému postaveného okolo R bývají dostupné přímo v repositářích většiny mainstreamových distribucí Linuxu. Základní balíček s jeho závislostmi se většinou jmenuje R (pozor – použijte verzálku a ne minusku) a například na systému Fedora/RHEL lze nainstalovat přes DNF:

# dnf install R

Samotný balíček R má relativně velké množství závislostí, což je ostatně patrné i z následující obrazovky (instalace je provedena pro Fedoru server s X a Fluxboxem; na Fedora workstation je mnoho závislých balíčků již nainstalovaných):

Last metadata expiration check: 1:03:19 ago on Thu 27 Aug 2020 07:28:20 PM CEST.
Dependencies resolved.
================================================================================
 Package             Arch   Version              Repository                Size
================================================================================
Installing:
 R                   x86_64 4.0.2-1.fc32         updates                   10 k
Installing dependencies:
 R-core              x86_64 4.0.2-1.fc32         updates                   57 M
 R-core-devel        x86_64 4.0.2-1.fc32         updates                   88 k
 R-devel             x86_64 4.0.2-1.fc32         updates                  9.5 k
 R-java              x86_64 4.0.2-1.fc32         updates                   11 k
 R-java-devel        x86_64 4.0.2-1.fc32         updates                   10 k
 R-rpm-macros        noarch 1.2.0-1.fc32         updates                   11 k
 
Transaction Summary
================================================================================
Install  407 Packages
 
Total download size: 445 M
Installed size: 1.3 G
Is this ok [y/N]:

Po instalaci by měly být dostupné především dva příkazy R a Rscript, které využijeme v dalším textu.

7. Spuštění interaktivního prostředí se smyčkou REPL

Po instalaci R si můžeme vyzkoušet spuštění interaktivního prostředí tohoto programovacího jazyka, které je vybavené smyčkou REPL:

$ R
 
R version 4.0.2 (2020-06-22) -- "Taking Off Again"
Copyright (C) 2020 The R Foundation for Statistical Computing
Platform: x86_64-redhat-linux-gnu (64-bit)
 
R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.
 
  Natural language support but running in an English locale
 
R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.
 
Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.
 
>
Poznámka: poslední řádek obsahuje takzvanou výzvu (prompt). Pokud je zobrazena, je R připraven na vstup příkazu od uživatele.

Při ukončování REPLu se prostředí zeptá, zda se mají uložit informace o pracovním prostředí (environment, workspace), aby bylo možné při opětovném spuštění REPLu pokračovat v práci. Tento koncept si podrobněji vysvětlíme příště.

8. Získání nápovědy a příkladů použití

K balíčkům i k jednotlivým funkcím, které jsou dostupné, je možné zobrazit nápovědu, a to příkazem help. Pokud se tento příkaz (ve skutečnosti se jedná o funkci) zavolá bez parametrů, vypíšou se informace o způsobu jeho použití (volání):

> help()

S výsledkem:

help                   package:utils                   R Documentation
 
Documentation
 
Description:
 
     ‘help’ is the primary interface to the help systems.
 
Usage:
 
     help(topic, package = NULL, lib.loc = NULL,
          verbose = getOption("verbose"),
          try.all.packages = getOption("help.try.all.packages"),
          help_type = getOption("help_type"))
 
Arguments:
 
   topic: usually, a name or character string specifying the topic for
          which help is sought.  A character string (enclosed in
          explicit single or double quotes) is always taken as naming a
          topic.
 
          If the value of ‘topic’ is a length-one character vector the
          topic is taken to be the value of the only element.

Zadat je možné i název funkce, popř. přesnou specifikaci balíčku (pokud existuje funkce se stejným jménem ve více balíčcích):

> help(sort)
sort                   package:base                    R Documentation
 
Sorting or Ordering Vectors
 
Description:
 
     Sort (or _order_) a vector or factor (partially) into ascending or
     descending order.  For ordering along more than one variable,
     e.g., for sorting data frames, see ‘order’.
 
Usage:
 
     sort(x, decreasing = FALSE, ...)
 
     ## Default S3 method:
     sort(x, decreasing = FALSE, na.last = NA, ...)
 
     sort.int(x, partial = NULL, na.last = NA, decreasing = FALSE,
              method = c("auto", "shell", "quick", "radix"), index.return = FALSE)
 
Arguments:
 
       x: for ‘sort’ an R object with a class or a numeric, complex,
Poznámka: v závislosti na nastavení se zobrazí buď nápověda naformátovaná v čistém textu nebo HTML dokument. Alternativně je možné nápovědu získat i v PDF (pro sazbu se v tomto případě používá pdflatex, podrobnosti si řekneme příště).

Zobrazit lze i příklady použití:

> example(sort)
 
sort> require(stats)
 
sort> x <- swiss$Education[1:25]
 
sort> x; sort(x); sort(x, partial = c(10, 15))
 [1] 12  9  5  7 15  7  7  8  7 13  6 12  7 12  5  2  8 28 20  9 10  3 12  6  1
 [1]  1  2  3  5  5  6  6  7  7  7  7  7  8  8  9  9 10 12 12 12 12 13 15 20 28
 [1]  3  2  5  5  1  6  6  7  7  7  7  8  7  8  9  9 10 12 12 12 12 20 28 13 15
 
sort> ## illustrate 'stable' sorting (of ties):
sort> sort(c(10:3, 2:12), method = "shell", index.return = TRUE) # is stable
$x
 [1]  2  3  3  4  4  5  5  6  6  7  7  8  8  9  9 10 10 11 12
 
$ix
 [1]  9  8 10  7 11  6 12  5 13  4 14  3 15  2 16  1 17 18 19
 

Vyhledávání v nápovědě a příkladech použití:

> apropos("sort")
 
[1] ".doSortWrap"  "is.unsorted"  "sort"         "sort.default" "sort.int"
[6] "sort.list"    "sort.POSIXlt" "sortedXyData"

9. Instalace RStudia

Pro práci s jazykem R se velmi často používá integrované vývojové prostředí nazvané RStudio. To lze nainstalovat buď opět z balíčků nabízených v repositářích Linuxové distribuce, nebo – pokud tato možnost neexistuje – lze na stránce https://rstudio.com/produc­ts/rstudio/download/ vybrat volně dostupnou verzi RStudia (RStudio Desktop with Open Source License) a na další stránce pak získat adresu s balíčkem kompatibilním s použitou distribucí Linuxu. Opět si ukažme instalaci provedenou pro Fedoru. K dispozici je balíček určený pro Fedoru 28, ovšem ten je použitelný i s novější verzí Fedory (konkrétně s Fedorou 32).

Nejdříve balíček stáhneme:

# wget https://download1.rstudio.org/desktop/centos7/x86_64/rstudio-1.3.1073-x86_64.rpm
 
--2020-08-28 15:59:45--  https://download1.rstudio.org/desktop/centos7/x86_64/rstudio-1.3.1073-x86_64.rpm
Resolving download1.rstudio.org (download1.rstudio.org)... 2600:9000:2111:9e00:10:3192:1100:93a1, 2600:9000:2111:1400:10:3192:1100:93a1, 2600:9000:2111:e00:10:3192:1100:93a1, ...
 
Connecting to download1.rstudio.org (download1.rstudio.org)|99.86.116.95|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 146953448 (140M) [application/x-redhat-package-manager]
Saving to: ‘rstudio-1.3.1073-x86_64.rpm’
 
rstudio-1.3.1073-x8 100%[===================>] 140.15M  33.8MB/s    in 4.0s
 
2020-08-28 15:59:49 (34.9 MB/s) - ‘rstudio-1.3.1073-x86_64.rpm’ saved [146953448/146953448]

A posléze ho nainstalujeme příkazem rpm:

$ rpm -i rstudio-1.3.1073-x86_64.rpm
Poznámka: při spuštění RStudia se může vypsat informace o chybějící knihovně openssl. Tu lze snadno doinstalovat. Jedná se o balíček nazvaný compat-openssl10.

10. Vybrané ukázky některých možností jazyka R

V navazujících šesti kapitolách si ukážeme některé možnosti, které nám programovací jazyk R (a jeho knihovny) nabízí. Bude se skutečně prozatím jednat pouze o ukázky, protože v této chvíli neznáme syntaxi a sémantiku tohoto jazyka – ta bude popsána v dalších článcích. Ukázky je možné spustit buď přímo v rámci interaktivní smyčky REPL v R, nebo je možné stejné příkazy zadávat do RStudia (což je mnohem blíže tomu, jak se jazyk R používá v praxi).

11. Vektory

Jazyk R podporuje několik datových typů (seznam, pole, matice, tabulka, uzávěr, …), ovšem existuje mezi nimi jeden typ využívaný v prakticky všech skriptech a ve většině funkcí. Jedná se o vektory (vector), jejichž prvky mohou obsahovat logické hodnoty, celá čísla, čísla typu double, komplexní čísla, znaky atd. Takovým vektorům se někdy říká atomické. Zajímavé je, že když použijete číslo, popř. nějaká funkce číslo vrací, jedná se ve skutečnosti o vektor.

Vektory se vytváří z prvků konstruktorem nazvaným c. Výsledek (tedy zkonstruovaný vektor) je možné přiřadit nějaké proměnné pomocí = (méně často z důvodů, které si vysvětlíme příště) nebo <-:

> a <- c(1,2,3,4)

Vektor si můžeme vypsat:

> str(a)
 num [1:4] 1 2 3 4

A popř. zjistit jeho typ a třídu:

> typeof(a)
[1] "double"
 
> class(a)
[1] "numeric"
Poznámka: práce s třídami a objekty je poměrně komplikovaná faktem, že existují dva objektové systémy. K těm se ještě dále vrátíme.

Číslo je skutečně považováno za jednoprvkový vektor:

> c(1) + 10
[1] 11
 
> length(42)
[1] 1

12. Alternativní způsob konstrukce vektoru

V případě, že má vektor obsahovat aritmetickou sekvenci, lze takový vektor zkonstruovat s využitím funkce seq, kterou si podrobněji popíšeme příště. Alternativně lze pro vektory se známou hodnotou prvního a posledního prvku (tj. obou mezních hodnot) použít operátor :, který odpovídá konstruktorům typu range v jiných programovacích jazycích:

> 1:4
[1] 1 2 3 4
> str(1:4)
 int [1:4] 1 2 3 4
> typeof(1:4)
[1] "integer"

Základní použití funkce seq:

> seq(1,4)
[1] 1 2 3 4
 
> seq(1,4,2)
[1] 1 3
 
> seq(1,10,2)
[1] 1 3 5 7 9
 
> seq(10,0)
 [1] 10  9  8  7  6  5  4  3  2  1  0

13. Grafy

Velmi silnou stránkou programovacího jazyka R je tvorba grafů, která je většinou velmi intuitivní. Tvorbou grafů se budeme podrobněji zabývat v samostatném článku, takže dnes si uvedeme jen několik malých ukázek.

První graf bude obsahovat průběh funkce sinus, ovšem tento průběh je nahrazen jednotlivými body, protože graf vytvořený funkcí plot, které předáme vektory s x-ovými a y-ovými souřadnicemi, vytvoří graf s nepospojovanými body [xi, yi]:

x <- 1:100
y <- sin(x/10)
plot(x,y)

Zkrácený zápis:

plot(sin(1:100/10))

Obrázek 12: Body ležící na průběhu funkce sinus.

Lissajousův obrazec:

plot(sin(1:1000/3), cos(1:4000/4))

Obrázek 13: Výsledek předchozího příkladu.

Skutečný graf s průběhem funkce sin:

plot(sin, from=0, to=2*pi)

Obrázek 14: Průběh funkce sinus.

14. Histogramy

Vytvořit je možné i histogram, a to pomocí funkce hist. Ukažme si jednoduchý histogram s hodnotami produkovanými funkcí sinus:

hist(sin(1:n * 2*pi/n))

Obrázek 15: Histogram.

15. Balíček ggplot2, lineární regrese atd.

Jedním z důležitých balíčků připravených pro ekosystém jazyka R je balíček nazvaný ggplot2, který lze nainstalovat například příkazem:

< install.packages("ggplot2"))

„gg“ v názvu tohoto balíčku znamená „grammar of graphics“, protože grafy mají vlastní sémantiku (osy, popisky, průběhy hodnot atd). Tento balíček později využijeme při složitějších vizualizacích.

Ještě si dnes ukažme použití funkce lm, která dokáže vypočítat lineární regresi (proložení naměřených či vypočtených bodů přímkou) a navíc i odchylky atd. Tento příklad byl převzat z Wikipedie a snažíme se v něm proložit hodnoty 12, 22, až 62:

> x <- 1:6  # Create vector.
> y <- x^2  # Create vector by formula.
> model <- lm(y ~ x)
> print(model)
 
Call:
lm(formula = y ~ x)
 
Coefficients:
(Intercept)            x
     -9.333        7.000
 
> summary(model)
 
Call:
lm(formula = y ~ x)
 
Residuals:
      1       2       3       4       5       6
 3.3333 -0.6667 -2.6667 -2.6667 -0.6667  3.3333
 
Coefficients:
            Estimate Std. Error t value Pr(>|t|)
(Intercept)  -9.3333     2.8441  -3.282 0.030453 *
x             7.0000     0.7303   9.585 0.000662 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
 
Residual standard error: 3.055 on 4 degrees of freedom
Multiple R-squared:  0.9583,    Adjusted R-squared:  0.9478
F-statistic: 91.88 on 1 and 4 DF,  p-value: 0.000662

Obrázek 16: Vizualizovaný model vytvořený funkcí lm.

Obrázek 17: Vizualizovaný model vytvořený funkcí lm pro odlišný vstup.

16. Spouštění skriptů psaných v R

Ještě se zmiňme o tom, jakým způsobem se spouští skripty psané v jazyku R. Můžeme je spouštět přímo v rámci interaktivní smyčky REPL (které předáme přesměrovaný vstup):

$ R < 10_lm_plots.R

Ve skutečnosti ovšem budeme muset specifikovat, jestli se má při ukončování REPLu ukládat informace o pracovním prostředí. Reálné spuštění skriptu tedy bude vypadat následovně:

$ R --vanilla < 10_lm_plots.R

Alternativně je možné použít příkaz RScript, kterému se přímo (bez přesměrování) předá název souboru se skriptem:

$ Rscript 10_lm_plots.R
Poznámka: skripty obsahující programy psané v R mají většinou koncovku „.R“, i když se někdy setkáme i s použitím malého „.r“.

17. Poznámka na závěr: seznamy v Pythonu versus vektory v R

Na závěr se zmiňme o jednom z rozdílů mezi seznamy v Pythonu a vektory v jazyku R, a to z toho důvodu, že se mnohdy tyto dva jazyky používají současně. V Pythonu jsou vektory měnitelnými (mutable) datovými strukturami a navíc se jedná o typ dat, který není uložen přímo v proměnné – proměnná ve skutečnosti obsahuje odkaz (referenci) na seznam. To může vést k tomu, že zdánlivá změna jediné proměnné ve skutečnosti vede i ke změně proměnné druhé (protože obě proměnné referencují stejný měnitelný seznam):

>>> x=[1,2,3]
 
>>> y=x
 
>>> y+=[4]
 
>>> x==y
True
 
>>> x
[1, 2, 3, 4]
 
>>> y
[1, 2, 3, 4]

V R namísto toho přidáním prvku do vektoru y nezměníme vektor x:

KL20-tip-hlasovani

> x=c(1,2,3)
 
> y=x
 
> y=append(y,4)
 
> identical(x,y)
[1] FALSE

18. Obsah následující části seriálu

V navazující části nového seriálu se seznámíme s některými základními koncepty, na nichž je programovací jazyk R postaven. Zejména si popíšeme podporované datové typy, základní funkce určené pro operaci s vektory a maticemi i některé řídicí příkazy (i když je nutné říci, že se v jazyku R řídicí struktury, především programové smyčky, používají méně často, než je tomu v běžných programovacích jazycích). Všechny příklady budou koncipovány tak, že je bude možné spustit jak v interaktivní smyčce REPL, tak i v prostředí RStudia.

Poznámka: celý koncept jazyka R se odlišuje od obecných programovacích jazyků a proto nemusí být při jeho popisu kladen takový důraz na přesný popis typového systému, řídicích struktur atd. (mnoho lidí úspěšně používá R dennodenně, a to bez exaktní znalosti sémantiky tohoto jazyka).

19. Repositář s demonstračními příklady

Zdrojové kódy všech dnes použitých demonstračních příkladů byly uloženy do nového Git repositáře, který je dostupný na adrese https://github.com/tisnik/r-examples V případě, že z nějakého důvodu nebudete chtít klonovat celý repositář (ten je ovšem – alespoň prozatím – velmi malý, dnes má jen jednotky kilobajtů), můžete namísto toho použít odkazy na jednotlivé demonstrační příklady, které naleznete v následující tabulce:

# Příklad Stručný popis Cesta
1 01_show_help.R zobrazení nápovědy v REPLu https://github.com/tisnik/r-examples/blob/master/01-introduction/01_show_help.R
2 02_show_help_sort.R zobrazení nápovědy v REPLu https://github.com/tisnik/r-examples/blob/master/01-introduction/02_show_help_sort.R
3 03_vector_constructor.R konstrukce vektorů pomocí c() https://github.com/tisnik/r-examples/blob/master/01-introduction/03_vector_constructor.R
4 04_vector_range.R konstrukce vektorů operátorem range https://github.com/tisnik/r-examples/blob/master/01-introduction/04_vector_range.R
5 05_plot.R nejjednodušší použití příkazu plot https://github.com/tisnik/r-examples/blob/master/01-introduction/05_plot.R
6 06_plot.R další ukázka příkazu plot https://github.com/tisnik/r-examples/blob/master/01-introduction/06_plot.R
7 07_lm.R lineární regrese https://github.com/tisnik/r-examples/blob/master/01-introduction/07_lm.R
8 08_lm_plot.R graf s výsledky lineární regrese https://github.com/tisnik/r-examples/blob/master/01-introduction/08_lm_plot.R
9 09_lm_plots.R grafy s výsledky lineární regrese https://github.com/tisnik/r-examples/blob/master/01-introduction/09_lm_plots.R
10 10_lm_plots.R grafy s výsledky lineární regrese (jiná funkce) https://github.com/tisnik/r-examples/blob/master/01-introduction/10_lm_plots.R
Poznámka: v tomto repositáři budou uloženy i jednotlivé články, prezentace a návody týkající se ekosystému programovacího jazyka R.

20. Odkazy na Internetu

  1. The R Project for Statistical Computing
    https://www.r-project.org/
  2. An Introduction to R
    https://cran.r-project.org/doc/manuals/r-release/R-intro.pdf
  3. R (programming language)
    https://en.wikipedia.org/wi­ki/R_(programming_language)
  4. The R Programming Language
    https://www.tiobe.com/tiobe-index/r/
  5. R Markdown
    https://rmarkdown.rstudio.com/
  6. R Markdown: The Definitive Guide
    https://bookdown.org/yihui/rmarkdown/
  7. R Markdown Cheat Sheet
    https://rstudio.com/wp-content/uploads/2016/03/rmarkdown-cheatsheet-2.0.pdf
  8. Introduction to R Markdown
    https://rmarkdown.rstudio­.com/articles_intro.html
  9. R Cheat Sheets
    https://blog.sergiouri.be/2016/07/r-cheat-sheets.html
  10. R Cheat Sheet
    https://s3.amazonaws.com/quandl-static-content/Documents/Quandl±+R+Che­at+Sheet.pdf
  11. Base R Cheat Sheet
    https://rstudio.com/wp-content/uploads/2016/06/r-cheat-sheet.pdf
  12. PYPL PopularitY of Programming Language
    https://pypl.github.io/PYPL.html
  13. Tiobe index
    https://www.tiobe.com/tiobe-index/
  14. Stack Overflow: Most Loved, Dreaded & Wanted Programming Languages In 2020
    https://fossbytes.com/stack-overflow-most-loved-dreaded-wanted-programming-languages-in-2020/
  15. How to Install and Use R on Ubuntu
    https://itsfoss.com/install-r-ubuntu/
  16. R programming for beginners – Why you should use R
    https://www.youtube.com/wat­ch?v=9kYUGMg_14s
  17. GOTO 2012 • The R Language The Good The Bad & The Ugly
    https://www.youtube.com/wat­ch?v=6S9r_YbqHy8
  18. R vs Python – What should I learn in 2020? | R and Python Comparison
    https://www.youtube.com/wat­ch?v=eRP_J2yLjSU
  19. R Programming 101
    https://www.youtube.com/c/rpro­gramming101
  20. Seriál Tvorba grafů pomocí programu „R“
    https://www.root.cz/serialy/tvorba-grafu-pomoci-programu-r/
  21. Tvorba grafů pomocí programu „R“: úvod
    https://www.root.cz/clanky/tvorba-grafu-pomoci-programu-r-1/
  22. Tvorba grafů pomocí programu „R“: pokročilé funkce
    https://www.root.cz/clanky/tvorba-grafu-pomoci-programu-r-pokrocile-funkce/
  23. Tvorba grafů pomocí programu „R“: vkládání textu, čeština
    https://www.root.cz/clanky/grafy-pomoci-programu-r-vkladani-textu-cestina/
  24. V indexu popularity programovacích jazyků TIOBE překvapilo R, Go, Perl, Scratch a Rust
    https://www.root.cz/zpravicky/v-indexu-popularity-programovacich-jazyku-tiobe-prekvapilo-r-go-perl-scratch-a-rust/
  25. Is R Programming SURGING in Popularity in 2020?
    https://www.youtube.com/watch?v=Duwn-vImyXE
  26. Using the R programming language in Jupyter Notebook
    https://docs.anaconda.com/a­naconda/navigator/tutorial­s/r-lang/
  27. Using R on Jupyter Notebook
    https://dzone.com/articles/using-r-on-jupyternbspnotebook
  28. Graphics, ggplot2
    http://r4stats.com/examples/graphics-ggplot2/
  29. A Practice Data Set
    https://r4stats.wordpress­.com/examples/mydata/
  30. Shiny – galerie projektů
    https://shiny.rstudio.com/gallery/
  31. Seriál Programovací jazyk Julia
    https://www.root.cz/seria­ly/programovaci-jazyk-julia/
  32. Julia (front page)
    http://julialang.org/
  33. Julia – repositář na GitHubu
    https://github.com/JuliaLang/julia
  34. Julia (programming language)
    https://en.wikipedia.org/wi­ki/Julia_%28programming_lan­guage%29
  35. IJulia
    https://github.com/JuliaLan­g/IJulia.jl
  36. Introducing Julia
    https://en.wikibooks.org/wi­ki/Introducing_Julia
  37. Julia: the REPL
    https://en.wikibooks.org/wi­ki/Introducing_Julia/The_REPL
  38. Introducing Julia/Metaprogramming
    https://en.wikibooks.org/wi­ki/Introducing_Julia/Meta­programming
  39. Month of Julia
    https://github.com/DataWo­okie/MonthOfJulia
  40. Learn X in Y minutes (where X=Julia)
    https://learnxinyminutes.com/doc­s/julia/
  41. New Julia language seeks to be the C for scientists
    http://www.infoworld.com/ar­ticle/2616709/application-development/new-julia-language-seeks-to-be-the-c-for-scientists.html
  42. Julia: A Fast Dynamic Language for Technical Computing
    http://karpinski.org/publi­cations/2012/julia-a-fast-dynamic-language
  43. The LLVM Compiler Infrastructure
    http://llvm.org/
  44. Julia: benchmarks
    http://julialang.org/benchmarks/
  45. R Vector
    https://www.datamentor.io/r-programming/vector/
  46. .R File Extension
    https://fileinfo.com/extension/r
  47. Lineární regrese
    https://cs.wikipedia.org/wi­ki/Line%C3%A1rn%C3%AD_regre­se
  48. lm (funkce)
    https://www.rdocumentation­.org/packages/stats/versi­ons/3.6.2/topics/lm
  49. quit (funkce)
    https://www.rdocumentation­.org/packages/base/version­s/3.6.2/topics/quit
  50. c (funkce)
    https://www.rdocumentation­.org/packages/base/version­s/3.6.2/topics/c
  51. help (funkce)
    https://www.rdocumentation­.org/packages/utils/versi­ons/3.6.2/topics/help
  52. Shiny: Introduction to interactive documents
    https://shiny.rstudio.com/ar­ticles/interactive-docs.html
  53. R Release History 1997–2013
    http://timelyportfolio.git­hub.io/rCharts_timeline_r/
  54. R: atomic vectors
    https://renenyffenegger.ch/no­tes/development/languages/R/da­ta-structures/vector/
  55. 11 Best R Programming IDE and editors
    https://www.dunebook.com/best-r-programming-ide/
  56. CRAN – The Comprehensive R Archive Network
    https://cran.r-project.org/