Video: How does THE MODULIN work? - DIY Music Instrument 2024
När du använder R, behöver du ibland din funktion för att göra något om ett villkor är sant och något annat om det är inte. Du kan göra detta med två om uttalanden, men det finns ett enklare sätt i R: en om … annat uttalande. En om … annat uttalande innehåller samma element som ett if-uttalande (se föregående avsnitt) och sedan lite extra:
-
Nyckelordet, placerat efter det första kodblocket
-
Ett andra kodblock, som ingår i hängslen, måste utföras om och endast om resultatet av Villkoret i if () -satsen är FALSK
I vissa länder är mängden mervärdesskatt (moms) som måste betalas beror på huruvida kunden är en offentlig eller privat organisation. Föreställ dig att offentliga organisationer måste betala endast 6 procent moms och privata organisationer måste betala 12 procent moms. Du kan lägga till ett extra argument offentligt till priceCalculator () func och anta det enligt följande för att lägga till rätt moms:
om (timmar> 100) netto. pris <- netto. pris * 0. 9 om (offentlig) {tot. pris <- netto. pris * 1. 06} annat {tot. pris <- netto. pris * 1.12} runda (tot. pris)}
Om du skickar denna kod till konsolen kan du testa funktionen. Om du till exempel arbetat i 25 timmar, ger följande kod dig de olika beloppen du tar ut för offentliga och privata organisationer: >> prisberäkare (25, offentlig = SANT) [1] 1060> prisberäkare (25, offentlig = FALSE) [1] 1120
Det fungerar bra, men hur fungerar det?
Om uttalandet behöver ett logiskt värde mellan parenteserna. Vilket uttryck som helst mellan parenteserna utvärderas innan det vidarebefordras till if-uttalandet. Så, om du arbetar direkt med ett logiskt värde behöver du inte ange ett uttryck alls. Använd, till exempel, om (public = = TRUE) är överflödig.
om (public) tot. pris <- netto. pris * 1. 06 annat till. pris <- netto. pris * 1. 12
Att ange ett annat uttalande i slutet av en rad och inte början på nästa är en bra idé.
inom en funktion och du källar hela filen samtidigt till R. Men du kan göra det kortare. Om-satsen fungerar som en funktion och det returnerar därmed också ett värde. Som ett resultat kan du tilldela det värdet till ett objekt eller använda det i beräkningar. Så istället för att räkna om nätet. pris och tilldela resultatet till tot. pris inom koden block, kan du använda om … annat uttalande så här:
R kommer först att utvärdera om … annat uttalande och multiplicera resultatet med netto. pris. Resultatet av detta tilldelas sedan till tot. pris. Detta skiljer sig inte från en iota från resultatet av de fem linjerna av kod som vi använde för originalet om … annat uttalande.