Podmínky v jazyce R
S tímto tématem se setkáte na našich kurzech ExcelTown.
Aktuálně: kurzy můžete absolvovat jak online, tak prezenčně.
V tomto článku je popsán způsob, jak v jazyce R zařídit, aby se něco provedlo pouze v případě, je-li splněna zadaná podmínka.
Budeme používat funkci If.
Příklad 1 - základní podmínka
Do proměnné a si uložíme nějaké číslo. Chceme, aby R vypsalo „kladne cislo“, pokud bude toto číslo kladné.
Ověřujeme například, že a má být rovno pěti. Zápis pak vypadá následovně:
Co tento zápis říká? Slovně ho můžeme přečíst následovně:
> proměnné a přiřadíme číslo 5
> jestliže (a je větší než 0) {
+ vypiš na obrazovku("kladne cislo")
+ }
Obecně tedy syntaxe příkazu if vypadá tak, že za if napíšeme do závorky podmínku, jejíž platnost testujeme, a následně do kudrnatých závorek to, co se má stát, pokud je podmínka splněna.
Příklad 2 - různé výstupy pro splnění i nesplnění podmínky
Vyjdeme z příkladu jedna. Co kdybychom chtěli R zároveň říct, co má dělat, pokud podmínka není splněna? Pak můžeme zápis z příkladu 1 rozšířit o else, a to následovně:
Slovně přečteme tento zápis následovně:
> jestliže (a je větší než 0) {
+ vypiš na obrazovku("kladne cislo")
+ } v opačeném případě {
+ vypiš na obrazovku("nekladne cislo")
+ }
Příklad 3 - více než dvě možnosti
Proč jsme v příkladu 2 použili pojem „nekladné číslo“? Protože není-li číslo kladné, nemusí být nutně záporné. Může se i rovnat nule.
Co kdybychom ale chtěli rozlišit tři případy: jestli je číslo a kladné, nebo záporné, nebo nula? Pak je třeba náš zápis dále rozšířit:
Slovně přečteme tento zápis následovně:
> jestliže (a je větší než 0) {
+ vypiš na obrazovku("kladne cislo")
+ } jestliže je a menší než nula {
+ vypiš na obrazovku("zaporne cislo")
+ } jinak {
+ vypiš na obrazovku("nula")
+ }
Nyní si můžete vyzkoušet uvedený zápis pro různá a, abyste si ověřili, že funguje. Stačí do konzole R napsat například a = 0 nebo a = –2 a pak znovu použít výše popsané zápisy.
Příklad 4: zkrácený zápis pomocí ifelse
Vraťme se nyní k příkladu 2. Existuje i jednodušší zápis, a to pomocí příkazu ifelse. Tento příkaz má následující syntaxi:
Ifelse(testovaná podmínka, co má nastat při její platnosti, co má nastat při její neplatnosti)
Například příklad 2 bychom pomocí tohoto příkladu přepsali následovně:
Tento zápis vypadá jednodušeji než zápis v příkladu 2, je ale zřejmé, že příkaz ifelse má svá omezení z hlediska počtu situací, které chceme rozlišovat. Například u příkladu 3 bychom jej použít nemohli.
Autor článku: Lenka Fiřtová
S tímto tématem se setkáte na našich kurzech ExcelTown.
Aktuálně: kurzy můžete absolvovat jak online, tak prezenčně.