IF, ELSE, ELSE IF výpis v R
Prohlášení if else
Příkaz if-else je skvělý nástroj pro vývojáře, kteří se snaží vrátit výstup na základě podmínky. V R je syntaxe:
if (condition) { Expr1 } else { Expr2 }
Chceme prozkoumat, zda je proměnná uložená jako „množství“ vyšší než 20. Pokud je množství větší než 20, kód vypíše „Prodali jste hodně!“ jinak pro dnešek nestačí.
# Create vector quantity quantity <- 25 # Set the is-else statement if (quantity > 20) { print('You sold a lot!') } else { print('Not enough for today') }
Výstup:
## [1] "You sold a lot!"
Pozor: Ujistěte se, že jste správně napsali odsazení. Kód s více podmínkami se může stát nečitelným, pokud nejsou odsazení ve správné poloze.
Prohlášení else if
Úroveň ovládání můžeme dále upravit pomocí příkazu else if. S elif můžete přidat tolik podmínek, kolik chceme. Syntaxe je:
if (condition1) { expr1 } else if (condition2) { expr2 } else if (condition3) { expr3 } else { expr4 }
Zajímá nás, zda jsme prodali množství mezi 20 a 30. Pokud ano, pak půllitr Průměrný den. Pokud je množství > 30, vytiskneme Skvělý den!, jinak pro dnešek nestačí.
Můžete zkusit změnit množství množství.
# Create vector quantiy quantity <- 10 # Create multiple condition statement if (quantity <20) { print('Not enough for today') } else if (quantity > 20 &quantity <= 30) { print('Average day') } else { print('What a great day!') }
Výstup:
## [1] "Not enough for today"
Příklad 2:
DPH má odlišnou sazbu podle zakoupeného produktu. Představte si, že máme tři různé druhy produktů s různou DPH:
Kategorie | Produkty | DPH |
---|---|---|
A | Kniha, časopis, noviny atd. | 8% |
B | Zelenina, maso, nápoje atd. | 10% |
C | Tričko, džíny, kalhoty atd.. | 20% |
Můžeme napsat řetězec, který uplatní správnou sazbu DPH na produkt, který si zákazník koupil.
category <- 'A' price <- 10 if (category =='A'){ cat('A vat rate of 8% is applied.','The total price is',price *1.08) } else if (category =='B'){ cat('A vat rate of 10% is applied.','The total price is',price *1.10) } else { cat('A vat rate of 20% is applied.','The total price is',price *1.20) }
Výstup:
# A vat rate of 8% is applied. The total price is 10.8