Hjem Personlig finansiering Hvordan man kæder Hvis ... Else udsagn i R-dummier

Hvordan man kæder Hvis ... Else udsagn i R-dummier

Video: iOS App Development with Swift by Dan Armendariz 2024

Video: iOS App Development with Swift by Dan Armendariz 2024
Anonim

I nogle tilfælde skal du foretage flere valg i R. Hvis og hvis … ellers erklæringer forlade dig med præcis to muligheder, men livet er sjældent så simpelt som det. Forestil dig, at du har nogle kunder i udlandet.

Lad os antage, at enhver kunde i udlandet ikke skal betale moms for eksemplets skyld. Dette giver dig nu tre forskellige momssatser: 12 procent for private kunder, 6 procent for offentlige kunder og ingen for udenlandske kunder.

Den mest intuitive måde at løse dette problem på er blot at kæde valgene. Hvis en klient bor i udlandet, skal du ikke opkræve moms. Ellers skal du kontrollere om klienten er offentlig eller privat og anvende den relevante momssats.

Hvis du definerer en argumentklient til din funktion, der kan tage værdierne 'i udlandet', 'offentlig' og 'privat', kan du kode den tidligere algoritme som denne:

hvis (klient == 'privat') {tot. pris <- netto. pris * 1. 12 # 12% moms} ellers {hvis (klient == 'offentlig') {tot. pris <- netto. pris * 1. 06 # 6% moms} ellers {tot. pris <- netto. pris * 1 # 0% moms}}

Med denne kode nestes du den anden, hvis … andet erklæring i den første hvis … andet erklæring. Det er helt acceptabelt, og det vil fungere, men forestil dig, hvad du skal gøre, hvis du havde fire eller flere muligheder. At sætte en erklæring i en erklæring i en erklæring i en erklæring skaber hurtigt et stort krøllet rod.

Heldigvis giver R dig mulighed for at skrive al den kode lidt tydeligere. Du kan kæde de hvis … andre udsagn som følger:

hvis (klient == 'privat') {tot. pris <- netto. pris * 1. 12} ellers hvis (klient == 'offentlig') {tot. pris <- netto. pris * 1. 06} else {tot. pris <- netto. pris}

I dette eksempel gør kæden en forskel på kun to beslag, men når du har flere muligheder, gør den kode læsbar. Bemærk, at du ikke behøver at teste om argumentklienten er lig med 'udlandet' (selvom det ikke ville være forkert at gøre det). Du går bare ud fra, at hvis kunden ikke har nogen af ​​de to andre værdier, skal den være 'i udlandet'.

Kædet hvis … andre udsagn arbejder på en enkelt værdi ad gangen. Du kan ikke bruge disse kædet, hvis … ellers erklæringer på en vektoriseret måde. For det kan du neste flere ifelse udsagn, som dette:

Moms <- ifelse (klient == 'privat', 1. 12, ifelse (klient == 'offentlig', 1. 06, 1)) tot. pris <- netto. pris * moms

Dette stykke kode kan blive ganske forvirrende, hvis du har mere end tre valg. Løsningen på dette er at skifte.

Hvordan man kæder Hvis ... Else udsagn i R-dummier

Valg af editor

Hvad er Array Formulas i Excel 2013? - dummies

Hvad er Array Formulas i Excel 2013? - dummies

En matrixformel i Excel 2013 (og andre regneark) er en speciel formel, der opererer på en række værdier. Hvis et celleområde leverer dette interval (som det ofte er tilfældet), betegnes det som et arrayinterval. Hvis denne rækkevidde leveres af en liste over numeriske værdier, er de kendt som ...

Ved hjælp af regnearkfunktioner til statistisk analyse i Excel 2016 - dummies

Ved hjælp af regnearkfunktioner til statistisk analyse i Excel 2016 - dummies

Excel 2016b har en række funktioner til Statistisk analyse. Funktionsbiblioteket på fanen Formler viser alle kategorier af Excel-regnearkfunktioner. Trinene i at bruge et regneark funktion er Skriv dine data i et datarray og vælg en celle for resultatet. Vælg den relevante formelskategori og vælg en ...

Hvad er nyt i Excel 2016 til statistisk analyse? - dummies

Hvad er nyt i Excel 2016 til statistisk analyse? - dummies

Microsoft har lavet nogle få ændringer i Excel's Ribbon (fanebåndet øverst), hvilket afspejler ændringer i Excel. Den mest oplagte tilføjelse er pæren øverst til højre for tilføjelser. Det er mærket "Fortæl mig hvad du vil gøre. "Dette kaldes Tell Me-boksen, og det er nyt ...

Valg af editor

Sådan postes på en vens Facebook-tidslinje - dummies

Sådan postes på en vens Facebook-tidslinje - dummies

Dit nyhedsfeed trækker indlæg, som dine Facebook-venner lav på et sted, så du kan læse dem alle på én gang. Men nogle gange vil du læse alt om kun en person. Heldigvis er alle deres indlæg blevet samlet på deres tidslinjer. Tidslinjen er ligesom en nyhedsfeed alt om en person. ...

Sådan sender du en Facebook-begivenhed - dummies

Sådan sender du en Facebook-begivenhed - dummies

Den første måde du sikkert finder ud af om Facebook begivenheden er gennem en anmeldelse. Når en ven inviterer dig til en begivenhed, vises et lille rødt flag over meddelelsesikonet i den store blå bar øverst. Klik på ikonet for at åbne din underretningsmenu; Klik derefter på den invitation, der skal tages ...

Hvordan man kan se de billeder du er på Facebook - dummies

Hvordan man kan se de billeder du er på Facebook - dummies

Hvis du har meget af Facebook venner, du er sandsynligvis i et ton af fotos. Du kan se de billeder, du er i, uden at skulle gå hele Facebook, så længe du er mærket i dem. Måske har du tagget dem selv, eller dine venner har måske tagget dig. Det første sted du ...

Valg af editor

Digital SLR-fotografi Alt-i-One til Dummies Cheat Sheet - dummies

Digital SLR-fotografi Alt-i-One til Dummies Cheat Sheet - dummies

Hvis du 'er interesseret i fotografering, du finder ingen bedre enhed end en digital spejlreflekskamera (eller dSLR). Uanset om du er amatør eller professionel, kan du finde en dSLR, der passer til dine behov. Du kan virkelig ikke slå kombinationen af ​​magt, fleksibilitet, vækstpotentiale og "accessorize-ability" af en dSLR. Med oplysningerne i denne ...

Hvordan man tager gebyr som bryllupsfotograf - dummier

Hvordan man tager gebyr som bryllupsfotograf - dummier

Som bryllupsfotograf, dit job er at hjælpe De formelle portrætter flyder så jævnt som muligt. Du kan lægge meget af grunden i månederne før den faktiske bryllupsdato som du kommunikerer med parret. Hvis du gør dine lektier, kan du fokusere på at holde portræt sessioner organiseret og opretholde kontrol ...