Základy jazyka R
Předpokládejme, že máte nainstalované prostředí jazyka R, případně i volný program RStudio.
Pro začátek zmíníme tři základní možnosti, kde můžete programovat. Vezměme to od nejjednodušší.
- Ideální možností je využít výše uvedené RStudio.
- Dále můžete využít přímo jednoduchou konzoli prostředí R (R Console, kterou nabízí první uvedený odkaz výše).
- 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říkazusource()
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!