Kamil Nešetřil

Podklady pro výuku

Uživatelské nástroje

Nástroje pro tento web


Programovací jazyk R

Jazyk R

R (programovací jazyk) pro zpracování dat, který umí:

  • načíst data v jakémkoliv formátu (Excel, txt, web),
  • úpravy, zpracování, výpočty, statistika, strojové učení;
  • výstupy: grafy, tabulky, webové aplikace, dokumenty — 👁 Ukázky. Nebo 👁 ještě více grafů.


  1. Je nainstalován v učebně A202: jak vlastní R, tak RStudio (IDE). ⚠️ Pozor, spusťte RStudio: Plocha/RStudio/rstudio.exe.
  2. Na soukromý počítač si nainstalujte nejprve R a pak RStudio. Pak spusťte RStudio (R se spustí „uvnitř“ RStudia, není třeba jej spouštět samostatně).

# graf funkce sinus (od -π do 2π)
plot(sin, -pi, 2*pi)
 
# náhodná čísla podle normálního rozdělení
rnorm(400)        
hist(rnorm(400))  # histogram

🐭 Zkopírujte kód (text) a vložte jej do skriptu. Skript vytvoříte v RStudiu: (File → New File → R Script).

💡  Spuštění příkazu na řádce, kde máte kurzor (můžete tak postupně „projet“ celý skript):

  1. pomocí tlačítka Run či
  2. klávesové zkraty Ctrl+Enter.

# Do komentářů je možno napsat cokoliv:
# Поняатно? ⚠️❕❔💡⤷🚧
demo(graphics)    # sada příkladů
demo(persp)       # ⤷ mačkejte Enter v konzoli
# Kalkulačka
3+5*12
5^7         # mocnina
sqrt(4)     # odmocnina (square root)
sin(pi/4)
sqrt(sin(pi/4))
 
# Nebo raději uložíme mezivýsledek
# do proměnné:
vnitrek <- sin(pi/4)
 
# … a pak proměnnou využijeme:
sqrt(vnitrek)

Záleží na mezerách či nových řádcích (Enter)?

Pomocí Chat GPT

V jazyce R udělej graf českých olympijských medailí. 🐭

Jeden z kódů v jazyce RPROJ, který mi vygeneroval Chat GPT:

# Data for Czech gold medals in the last three Olympic Games
medals <- c(2, 1, 4)
years <- c("Rio 2016", "Pyeongchang 2018", "Tokyo 2021")
 
# Create a bar chart of gold medals
barplot(medals, 
  main = "Czech Gold Medals in Last Three Olympics",
  xlab = "Year and Host City",
  ylab = "Number of Gold Medals",
  names.arg = years,
  col = "steelblue",
  border = NA)

🐭 Požádejte GPT, ať vám vytvoří graf. (Musí vám dodat i data.)

Některé funkce jsou dostupné v balíčcích (package, library), které se načítají pomocí funkce library(jméno_balíčku). Když funkce vrací chybu, tak balíček není nainstalovaný. Nainstalujte jej tedy: Instalace balíčku (package, library) – v RStudiu vpravo

  • GPT je jazykový model, a tak programo­vacím jazykům rozumí skvěle. Proč zadávat Googlu obecné dotazy, když je možné se zeptat Chatu GPT přímo?
  • Alternativa k ChatGPT: Google Gemini
  • RTutor – specializovaná webová aplikace pro generování kódu v R pomocí AI, která obsahuje pěkné uživatelské rozhraní a příklady dat i kódu.
  • ChatGPT přímo v RStudiu mlverse/chattr

💡 Obdobný graf (avšak se spolehlivými daty) snáze a elegantněji vytvoří WolframAlpha.

Smyslem těchto ukázek bylo demonstrovat snadnost použití programovacího jazyka, nikoliv jeho všechny možnosti. Výhodou programovacího jazyka (na rozdíl od GUI) je, že v něm můžete „naprogramovat cokoliv“.


Co jsme již dělali v Excelu

Zdrojová data

library(readr) # Načíst knihovnu funkcí.
 
osoby <- read.csv("https://dataearth.cz/lib/exe/fetch.php/it/ra/osoby.csv",
                  fileEncoding="UTF-8-BOM")
 
# Histogram jen z jednoho sloupečku
hist(osoby$vek)
 
# Základní statistika
summary(osoby$vek) # Všechno dohromady
mean(osoby$vek)    # Nebo jednotlivě
max(osoby$vek)
min(osoby$vek)
 
# Nejmenší a největší hodnoty
serazeno <- osoby[order(osoby$vek), ] # Složitější už to nebude ;-)
head(serazeno)
tail(serazeno)
 
# Takto zobrazíme veliké množství bodů
smoothScatter(osoby)
 
# jen 1000, protože 47 tisíc řádků je příliš
# mnoho pro vykreslení všech bodů několikrát 
osoby_1000 <- head(osoby, n = 1000)
plot(osoby_1000)
 
# Kategorická veličina (histogram není možné sestavit)
table(osoby$pohlavi)
barplot(table(osoby$pohlavi))
 
# Časový průběh
vyskyty <- table(osoby$datum)
plot(vyskyty)
plot.ts(vyskyty) # 🚨 nezkoušel jsem to 𝒦𝒩

TBD 🐭 Složitější: Join, agregace podle krajů a pohlaví, denormalizace (kontingenční tabulka), ggplot2, ggsave()

S prvotním načtením dat vám pomůže RStudio:
RStudio – panel vpravo nahoře.
Vygeneruje kód, který pak dále používáte.


R pro obrazová data, radiologii a zdravotnictví


💡 Kdo to s programováním myslí vážně, ať použije jazyk Python.

Poslední úprava: 10. 02. 2024