Video: Britse bendes gebruiken kinderen voor drugshandel - RTL NIEUWS 2024
Wanneer u R gebruikt, hebt u soms uw functie nodig om iets te doen als een voorwaarde waar is en iets anders als het is Niet, je zou dit kunnen doen met twee if-statements, maar er is een eenvoudigere manier in R: een if … else-statement. Een if … else-statement bevat dezelfde elementen als een if-statement (zie het vorige gedeelte) en dan nog wat extra:
-
Het trefwoord else, geplaatst na het eerste codeblok
-
Een tweede blok code, vervat in accolades, dat moet worden uitgevoerd als en alleen als het resultaat van de voorwaarde in de if () -instructie is FALSE
In sommige landen hangt het bedrag van de belasting over de toegevoegde waarde (btw) dat moet worden betaald af van de vraag of de klant een openbare of een privéorganisatie is. Stel u voor dat openbare organisaties moeten betalen slechts 6 procent BTW en particuliere organisaties moeten 12 procent BTW betalen. U kunt een extra argument openbaar aan de functie priceCalculator () toevoegen en stel het als volgt vast om het juiste btw-bedrag toe te voegen:
als (uren> 100) netto. prijs <- netto. prijs * 0. 9 indien (openbaar) {tot. prijs <- netto. prijs * 1. 06} anders {tot. prijs <- netto. prijs * 1. 12} ronde (tot prijs)}
Als u deze code naar de console verzendt, kunt u de functie testen. Als u bijvoorbeeld 25 uur hebt gewerkt, geeft de volgende code u de verschillende bedragen die u in rekening brengt voor openbare en particuliere organisaties, respectievelijk: >> priceCalculator (25, public = TRUE) [1] 1060> priceCalculator (25, public = ONWAAR) [1] 1120
Dit werkt goed, maar hoe werkt het?
De if-instructie heeft een logische waarde nodig tussen de haakjes. Elke uitdrukking die u tussen de haakjes plaatst, wordt geëvalueerd voordat deze wordt doorgegeven aan de instructie if. Dus als u rechtstreeks met een logische waarde werkt, hoeft u helemaal geen uitdrukking op te geven. Gebruik bijvoorbeeld of (public == TRUE) overbodig is.
if (public) tot. prijs <- netto. prijs * 1. 06 else tot. prijs <- netto. prijs * 1. 12
De else-instructie aan het einde van een regel zetten en niet het begin van de volgende is een goed idee.
doet binnen een functie en je het volledige bestand in één keer naar R. <100> broncode Bronvermelding De if-opdracht werkt als een functie en daarom wordt er ook een waarde geretourneerd. Als gevolg hiervan kunt u die waarde aan een object toewijzen of deze in berekeningen gebruiken. Dus in plaats van het netto herberekenen. prijs en het toewijzen van het resultaat aan tot. prijs binnen de codeblokken, kunt u de if … else-instructie als volgt gebruiken:
tot. prijs <- netto. prijs * indien (openbaar) 1. 06 anders 1. 12
R zal eerst de if … else-verklaring evalueren en de uitkomst per netto vermenigvuldigen. prijs. Het resultaat hiervan wordt dan toegewezen aan tot. prijs. Dit verschilt niet één jota van het resultaat van de vijf regels code die we voor de originele if … else-instructie hebben gebruikt.