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á