Základy jazyka R

Z WikiSkript

Předpokládejme, že máte nainstalované prostředí jazyka R, případně i volný program RStudio.

Konzole R spuštěná v příkazové řádce.

Pro začátek zmíníme tři základní možnosti, kde můžete programovat. Vezměme to od nejjednodušší.

  1. Ideální možností je využít výše uvedené RStudio.
  2. Dále můžete využít přímo jednoduchou konzoli prostředí R (R Console, kterou nabízí první uvedený odkaz výše).
  3. Pokud jste zdatní v příkazové řádce (cmd, Terminal, apod.), spusťte ji a napište jen r a potvrďte klávesou Enter. Otevře se vám konzole R přímo v příkazové řádce.

Takže to bychom měli a pojďme na základní hrátky s jazykem R.

Ahoj světe![upravit | editovat zdroj]

Nejprve si ukážeme, jak vypíšeme základní text na obrazovku. Ať už používáte kteroukoli z výše uvedených možností, postup bude stejný. Pro zobrazení se používá příkaz print().

print("Ahoj světe!")
#> [1] "Ahoj světe!"

Paráda.

Komentáře[upravit | editovat zdroj]

Až budeme psát složitější skripty, bude se hodit části kódu okomentovat, abychom po letech věděli, čeho jsme chtěli dosáhnout. Komentáře se píší za znak křížku (#) a obsahují text, který se žádným výpočtem nezpracovává (neobsahuje instrukce pro program, ale jen pouhý komentář pro člověka).

# Tady sečtu čísla
2 + 3

Výše uvedený skript dá jednoznačný výsledek:
(Na začátku řádku se ukazuje #> [1], toho si teď nevšímejte. #> píšeme jen zde ve wiki jako komentář proto, abyste mohli tento kód jako celý blok překopírovat přímo do R a zkusit si ho bez zbytečných chybových hlášek. A [1] vypisuje samotné prostředí R jako pořadové číslo prvního prvku na řádku ve výsledku. Uff. Zkrátka dělejte, jakože ten začátek řádku nevidíte.)

#> [1] 5

Proměnné[upravit | editovat zdroj]

Samozřejmě si můžeme různé hodnoty ukládat do proměnných. Možností je několik.

# Chci uložit cenu chleba.

# Můžu použít rovnítko.
cenachleba = 28

# Nebo šipky směřující od hodnoty  k proměnné
cenachleba <- 28
28 -> cenachleba

# Nebo příkaz assign s názvem proměnné v uvozovkách.
assign("cenachleba", 28)

Základní aritmetické operace[upravit | editovat zdroj]

Ještě si představíme sčítání, odečítání a další operace s čísly. To je jednoduché.

# sčítání: +
2 + 3
#> [1] 5

# odečítání: -
5 - 4
#> [1] 1

# násobení: *
3 * 6
#> [1] 18

# dělení: /
20 / 5
#> [1] 4

# mocniny: ^
4^2
#> [1] 16

# modulo: %% (vrací zbytek po celočíselném dělení)
# 20 / 3 je 6, zbytek 2
20 %% 3
#> [1] 2

Takže jednoduché výpočty máme za sebou. Nezapomeňte, že můžeme počítat i s proměnnými.

# cena chleba
cenachleba <- 28

# cena másla ve slevě
40 -> cenamasla

# cena snídaně
cenasnidane = cenamasla + cenachleba

# vypíšu na obrazovku
cenasnidane
#> [1] 68

# vypíšu na obrazovku ještě jinak
print(cenasnidane)
#> [1] 68

Snídani máme spočítanou. Ještě se podíváme, kam budeme ukládat soubory. Počítání v konzoli je jedna věc, alečlověk občas potřebuje nějaké skripty uložit, aby mohl počítat opakovaně.

Nastavení pracovního adresáře[upravit | editovat zdroj]

Abychom mohli spouštět soubory s programem pro R, musíme si říct, v jaké složce soubory najdeme.

getwd()                           # zjistíme, která složka je aktuálně vedená jako pracovní prostor pro R
dir()                             # výpis pracovní složky formou vektoru
setwd("~/skola/R")                # nastavíme pracovní složku na ~/skola/R/

Takže stačí vzít jednoduchý skript a uložit ho jako soubor do dané složky. Začneme hledáním správné složky.

# kde mám složku?
getwd()
#> [1] "/Users/Program Files/"

# to se mi nehodí, chci ji u sebe v dokumentech
setwd("~/Dokumenty/R")

# zkontroluju, že se to povedlo
getwd()
#> [1] "/Users/EvzenOnegin/Dokumenty/R"

To je OK, následující řádky si třeba v Poznámkovém bloku nebo jiném textovém editoru (Notepad, Notepad++, TextEdit, apod.) uložím do souboru snidane.R do pracovní složky definované výše.

# chleba
cenachleba <- 28

# máslo
cenamasla <- 40

# součet se vypíše ihned na obrazovku, protože ho nepřiřazuju do žádné proměnné
# bude fungovat pouze na konzoli
cenamasla + cenachleba

# spouštíme-li script z textového souboru, musíme použít funkci ''print''
print(cenamasla + cenachleba)

Soubor si pak můžu třeba zítra ráno pustit, abych věděl, kolik stála snídaně.

source("snidane.R")
#> [1] 68
Pozor! Windows nefunguje v UTF-8 jako RStudio, při použití příkazu source() se vám mohou chybně zobrazovat české znaky. Toto můžete dát do pořádku tak, že v příkazu zadáte znakovou sadu, tedy takto: source("nazev_scriptu", encoding = "UTF-8").

Tak to by bylo. Základy umíme!