Introduktion til switch statement i R

Lad os overveje en situation, hvor der er flere muligheder i form af udtryk, og vi er nødt til at kontrollere vores output på en sådan måde, at det sammenligner udtrykværdien og de værdier, der findes på listen og følgelig videregiver output. Til dette kan vi også bruge If Else-udsagn, men der er nogle begrænsninger for det som hvis Else-udsagn ikke er egnede, når der er flere vejsgreninger (flere indstillinger). Så her kan vi bruge Switch-udsagn i r, som har flere fordele, f.eks

  • En switch-sætning kan teste udtryk baseret på et strengobjekt, en listeværdi eller et enkelt heltal, i bund og grund kan vi sige, at switch-sætningerne er bedst til faste dataværdier.
  • Switch-udsagn er bedre til flervejsforgrening.
  • Hastigheden af ​​behandlingen af ​​kode er hurtig, når vi bruger switch-erklæringer (dette er synligt, når der er et betydeligt antal tilfælde); Generelt tog erklæringer, hvis ellers var tid, når der er et stort antal sager.
  • Switch-udsagn er mindre sårbare over for fejl, da de er meget renere, når vi skal kombinere sager.

Definition

En switch-sætning sammenligner udtrykværdien og værdierne på listen og giver os den bedste output, der opfylder alle krav. Nu ser vi nogle illustrationer, hvor vi kan bruge switch-erklæringen.

Syntaks:

Den grundlæggende syntaks i R for switch-erklæringer ligner:

switch(expression, Value 1, Value 2, Value 3…. Value n)

Her sammenligner koden ekspressionsværdi med værdierne på listen, og det bedste match vender tilbage som et output, der opfylder alle betingelser i problemopgørelsen.

Regler for switch-erklæring

De regler, der finder anvendelse i Switch Statement er:

1. Der er ingen grænser for sagsangivelser i en switch, som du kan danne et antal sagsangivelser, den eneste begrænsning er, at hvert enkelt tilfælde følges af den værdi, der skal sammenlignes med, eller et kolon, uanset hvor karakterstrengen er.

2. Hvis der er mere end én match inden for en switch-erklæring, returneres den første matchende sag-sætning som en output.

Eksempel 1

Kode:

x <- switch("color", "color" = "red", "shape" = "square", "color" = "blue")
x

Produktion:

Kode:

x <- switch("color", "color" = "blue", "shape" = "square", "color" = "red")
x

Produktion:

3. Hvis den værdi, vi skal evaluere i vores kode, er et tal, og den numeriske værdi er uden for rækkevidden (Værdier er større end antallet af poster på listen eller mindre end 1). Derefter er resultatet, der returneres til os, "NULL".

Eksempel 2

Kode:

x <- switch(4, "Ball", "Bat", "Wickets")
x

Produktion:

Kode:

x <- switch(0, "Ball", "Bat", "Wickets")
x

Produktion:

4. Hvis vi er nødt til at evaluere en karakterstreng, skal karakterstrengene tilpasses nøjagtigt til elementerne.

Eksempel 3

Kode:

x <- switch("color", "color" = "red", "shape" = "square")
x

Produktion:

Kode:

x <- switch("coler", "color" = "red", "shape" = "square")
x

Produktion:

5. Vi får kun en fejl, når der er mere end én sagsangivelse med forkert stavemåde, eller udtrykket ikke er på listen, eller den tilsvarende værdi af sagsangivelsen mangler.

Flowdiagram over switch-erklæring i R

  • Hvis udtryk = sag 1, udføres STATEMENT 1.
  • Hvis udtryk = sag 2, udføres STATEMENT 2.
  • Hvis udtryk = sag 3, udføres STATEMENT 3.
  • Hvis sag 1, sag 2 og sag 3 mislykkes, udføres standarderklæringen.

Brug sager med switch-erklæring

Nogle tilfælde, hvor vi kan bruge switch-udsagn.

Type 1: Hvis udtrykket er antal

Kode:

switch(2, "Ball", "Bat", "Wickets")

Produktion:

Kode:

switch(3, "Ball", "Bat", "Wickets")

Produktion:

I ovenstående eksempel har vi en liste, der består af tre elementer (Ball, Bat og Wickets), switch-sætningsfunktionen returnerer det tilsvarende element til den numeriske værdi, som vi indtastede som et udtryk.

Her skal vi følge reglerne nøje, mens vi bruger en switch-erklæring, ligesom den meget grundlæggende og almindelige fejl er:

”Hvis den evaluerede værdi er et tal, og den numeriske værdi er uden for rækkevidden (Værdier er større end antallet af poster på listen eller mindre end 1). Resultatet, der blev returneret til os, er “NULL”.

Kode:

x <- switch(4, "Ball", "Bat", "Wickets")
x

Produktion:

Type 2: Hvis udtrykket er streng

Kode:

switch("Wickets", "Ball" = "Red", "Bat" = "Rectangle", "Wickets" = "Out")

Produktion:

Flowdiagram for eksemplet ser ud:

Type 3: Mix n Match

Eksempel 1:

x= 1
y = 2
z = switch(x+y, "Hello Abhinav", "Hello Mayank", "Hello Naman", "Hello Hardik")

Her tildelte vi nogle værdier til x og y, så tilføjer vi udtryk i switch-sætningen som en ligning.

Så x + y = 1 + 2 = 3.

Hvilket betyder, at 3. værdi på listen kommer som en output. I vores eksempel er 3-værdien “Hello Naman”.

Kode:

Og koden til ovenstående eksempel ser sådan ud:

x= 1
y = 2
z = switch(x+y, "Hello Abhinav", "Hello Mayank", "Hello Naman", "Hello Hardik")
z

Produktion:

Eksempel 2:

Where x= 1 and y= 7
a = switch(paste(x, y, sep=""), "7"="Hello Abhinav", "12"="Hello Mayank", "17"="Hello Naman", "21"="Hello Hardik")

Når vi kører dette i R, får vi.

Kode:

x= 1
y= 7
a = switch(paste(x, y, sep=""), "7"="Hello Abhinav", "12"="Hello Mayank", "17"="Hello Naman", "21"="Hello Hardik")
a

Produktion:

Konklusion

  • Switch-udsagn er lettere at læse.
  • Switch-udsagn er mere effektive, hvis vi sammenligner det med If-Else-udsagnet.
  • Skifterklæringer er lette at vedligeholde og skrive.
  • Ved hjælp af switch-erklæringen kan vi lave et springbord.
  • Skift udsagn hjælper os med at gøre stor kode meget praktisk, det er meget let at spore en fejl i koden, hvis nogen.

Selvom der også er nogle begrænsninger, som f.eks. Switch-udsagn, fungerer ikke med flydere, og det fungerer heller ikke med intervaller (medmindre det udtrykkeligt er nævnt).

Anbefalede artikler

Dette er en guide til Switch Statement i R. Her diskuterer vi reglerne, flowdiagrammet og forskellige anvendelsestilfælde af switch Statements i R med eksempler. Du kan også se på de følgende artikler for at lære mere -

  1. Skift erklæring i C
  2. Skift erklæring i C ++
  3. Skift erklæring i JavaScript
  4. Skift erklæring i Matlab
  5. Skift erklæring i C #

Kategori: