Video: Week 0 2025
Når du bruger R, har du nogle gange brug for din funktion til at gøre noget, hvis en tilstand er sand og noget andet, hvis det er ikke. Du kan gøre dette med to hvis erklæringer, men der er en nemmere måde i R: en hvis … andet erklæring. En hvis … ellers erklæring indeholder de samme elementer som en if-sætning (se foregående afsnit) og derefter nogle ekstra:
-
Nøgleordet ellers placeret efter den første kodeblok
-
En anden kodeblok indeholdt i braces, der skal udføres, hvis og kun hvis resultatet af betingelsen i if () erklæringen er FALSK
I nogle lande er mængden af moms, der skal betales, afhængig af om klienten er en offentlig eller privat organisation. Forestil dig, at offentlige organisationer skal betale kun 6 procent moms og private organisationer skal betale 12 procent moms. Du kan tilføje et ekstra argument offentligt til priceCalculator () func og vedtage det som følger for at tilføje den korrekte moms:
hvis (timer> 100) netto. pris <- netto. pris * 0. 9 hvis (offentlig) {tot. pris <- netto. pris * 1. 06} else {tot. pris <- netto. pris * 1. 12} runde (tot. pris)}
Hvis du sender denne kode til konsollen, kan du teste funktionen. Hvis du for eksempel har arbejdet i 25 timer, giver følgende kode dig de forskellige beløb, du opkræver for offentlige og private organisationer: >> prisberegner (25, offentlig = TRUE) [1] 1060> prisberegner (25, offentlig = FALSE) [1] 1120
Dette virker godt, men hvordan virker det?
Hvis erklæringen har brug for en logisk værdi mellem parenteserne. Ethvert udtryk, du sætter mellem parenteserne, evalueres, inden det videreføres til if-erklæringen. Så hvis du arbejder direkte med en logisk værdi, behøver du ikke at angive et udtryk overhovedet. Hvis du f.eks. Bruger, hvis (offentlig = = TRUE) er overflødig.
hvis (offentlig) tot. pris <- netto. pris * 1. 06 ellers tot. pris <- netto. pris * 1. 12
At sætte den anden erklæring i slutningen af en linje og ikke starten på den næste er en god ide.
inden for en funktion , og du kildes hele filen på en gang til R. Men du kan gøre dette kortere. If-sætningen fungerer som en funktion, og det returnerer derfor også en værdi. Som et resultat kan du tildele denne værdi til en genstand eller bruge den i beregninger. Så i stedet for at beregne netto. pris og tildele resultatet til tot. pris inden for kodeblokkene, kan du bruge det hvis … andet erklæring som dette:
R vil først evaluere ordet … og multiplicere resultatet efter netto. pris. Resultatet af dette tildeles derefter til tot. pris. Dette adskiller ikke en iota fra resultatet af de fem linjer kode vi brugte til originalen hvis … andet erklæring.