Inleiding tot If-verklaring in R

De "if" -instructie in R is een voorwaardelijke instructie die wordt gebruikt om een ​​voorwaarde (n) te testen of een op omstandigheden gebaseerde uitvoer te genereren. Een if-instructie in R kan worden gevolgd door meerdere else-ifs en ten slotte door de else-instructie. Het werkt opeenvolgend, zoals, als een voorwaarde positief test op if zelf, daarna op ifs en de instructie else wordt niet uitgevoerd. Evenzo, als een van de andere ifs wordt uitgevoerd, dan volgt de volgende instructie if en de instructie else niet. De else wordt alleen uitgevoerd als de voorgaande if en else ifs (als ze aanwezig zijn) negatief testen op de conditie.

Syntaxis

De syntaxis van de instructie if-else in R is als volgt:

if (condition) (
statement_1 # This statement will execute if the condition is satisfied.
)
else (
statement_2 # This section will execute if the condition is not satisfied.
)

De syntaxis van de instructie if-else if-else in R is als volgt:

if (condition_1) (
statement_block_1 # This block will execute if condition 1 is met.
)
else if (condition_2) (
statement_block_2 # This block will execute if condition 2 is met.
)
else (
statement_block_3 # This block will execute if none of the conditions is met.
)

Stroomschema

Hier is het onderstaande stroomdiagram

Voorbeelden van If-verklaring in R

Begrijpen of statement in R via voorbeelden

De if-instructie in R kan in verschillende situaties worden gebruikt en werkt met verschillende soorten gegevens. We zullen proberen het te implementeren om de werking ervan te begrijpen, van basis tot de meest complexe situaties. Laten we dit in meer detail gaan begrijpen.

Voorbeeld 1

In dit voorbeeld controleren we of een nummer deelbaar is door 21 of niet. We zullen een functie maken die deze delingsvoorwaarde test met behulp van de instructie if-else. Vervolgens geven we het te testen nummer door aan de functie.

De volgende schermafbeelding toont de functie in R die if-else insluit voor het valideren van een deelbaarheidstest voor een nummer.

divide.function <- function(x) (
if (x %% 21 == 0)
(
print(“The number is divisible by 21”)
)
else (
print(“The number is not divisible by 21”)
)
)

In de bovenstaande code wordt een getal dat wordt doorgegeven aan de functie eerst gevalideerd tegen een voorwaarde in de instructie if. Dus als het getal bij de verdeling 21 als rest nul retourneert, wordt de code in het blok afgedrukt als de uitvoer, anders wordt de code uitgevoerd.

Het doorgeven van verschillende nummers in de bovenstaande functie geeft resultaten zoals hieronder weergegeven:

Voorbeeld 2

In het tweede voorbeeld zullen we de if-else-lus uitbreiden naar de if-else if-else-instructie. Hier zijn we van plan te controleren of een getal deelbaar is door zowel 7 als 9, gewoon door 7 maar niet door 9, alleen door 9 maar niet door 7, of door geen van de twee getallen. Als aan een voorwaarde is voldaan, wordt het bijbehorende codeblok uitgevoerd. Er kunnen meerdere if-statements zijn. Zoals eerder vermeld, wordt het codeblok alleen uitgevoerd als er niet aan een voorwaarde is voldaan. Uitvoerinstructies in overeenkomstige blokken moeten de betekenis correct overbrengen.

divide.function <- function(x) (
if (x %% 7 == 0 && x %% 9 == 0)
(
print("The number is divisible by both 7 and 9.")
)
else if (x %% 7 == 0) (
print("The number is divisible by 7 but not by 9.")
)
else if (x %% 9 == 0) (
print("The number is divisible by 9 but not by 7.")
)
else (
print("The number is divisible neither by 7 nor by 9.")
)
)

Het doorgeven van verschillende nummers in de functie die met de bovenstaande code is gedefinieerd, genereert uitvoer zoals weergegeven in de onderstaande schermafbeelding.

Het doorgeven van verschillende getallen in de door de gebruiker gedefinieerde functie divide.function () geeft het resultaat zoals hierboven. Hier zijn vier soorten nummers mogelijk; ten eerste die deelbaar zijn door zowel 7 als 9 zoals 63 en 126, ten tweede die deelbaar zijn door 7 maar niet door 9 zoals 14 en 35, ten derde die deelbaar zijn door 9 maar niet door 7 zoals 18 en 36, en ten slotte die deelbaar zijn door geen van de twee gehele getallen, dwz 7 en 9. De laatste voorwaarde maakt deel uit van else statement, aangezien alle andere mogelijke condities worden gecontroleerd in de voorgaande if en else ifs.

Voorbeeld 3

In dit voorbeeld zullen we controleren of een nummer een priemgetal is of niet. Elk getal, dat alleen door zichzelf en een deelbaar is, wordt een priemgetal genoemd. Er moet echter worden opgemerkt dat 1 geen priemgetal is, omdat het niet voldoet aan de voorwaarde voor een priemgetal, omdat in het geval van 1 beide getallen, dwz zichzelf en 1 hetzelfde zijn. Verder, wat als een gebruiker een negatief getal doorgeeft aan de functie om te controleren of het een priemgetal is of niet? Bij het implementeren van de functie moeten dus alle bovenstaande voorwaarden in acht worden genomen. Laten we eens kijken hoe de functie eruit ziet wanneer deze is geïmplementeerd, zoals hieronder wordt getoond.

primecheck.function <- function(x) (
flag <- 1
if (x <= 0)
(
print("Number must be greater than zero.")
)
else if (x == 1)
(
print("1 is not a prime number.")
)
else
(
for (i in 3:x-1)
(
if (x %% i == 0)
(
flag <- 0
)
)
if (flag == 0)
(
paste(x, "is not a prime number.")
)
else
(
paste(x, "is a prime number.")
)
)
)

  • De bovenstaande schermafbeelding toont de door de gebruiker gedefinieerde functie primecheck.function () in R. Zoals te zien is, gebruikt de code geneste if-else om de taak te volbrengen. Laten we eens kijken hoe de code werkt. De functie primecheck.function () heeft slechts één parameter nodig. Aanvankelijk is de vlagvariabele ingesteld op 1. Vervolgens begint de sectie if-else if-else. De instructie if controleert of het nummer groter is dan nul of niet. Dit is een zeer belangrijke voorwaarde en moet de eerste voorwaarde zijn.
  • Zo niet, dan wordt het juiste bericht gegenereerd door de functie. Vervolgens controleert de else-if of het nummer gelijk is aan 1 en vertelt de gebruiker dat 1 geen priemgetal is; de reden hiervoor is vermeld in de voorgaande paragraaf. Als aan geen van de twee bovenstaande voorwaarden wordt voldaan, wordt het codeblok in de andere sectie uitgevoerd. In andere gevallen proberen we nu in wezen te controleren of het nummer een priemgetal is of niet.
  • De for-lus deelt het getal van 2 tot nummer min 1 bereik door de incrementele variabele, en in dit bereik wordt de vlag ingesteld op nul, wat betekent dat het getal geen priemgetal is. De instructie if-else buiten voor lus test een voorwaarde op de vlag en genereert de juiste uitvoer.

De functie werkt en geeft de resultaten zoals weergegeven in de onderstaande schermafbeelding.

Conclusie

In R-programmering kan de instructie if-else of if-else if-else effectief worden gebruikt om te werken met aan de conditie gerelateerde aspecten. Het R-script vergemakkelijkt mogelijk de implementatie van if-instructies niet op dezelfde manier als andere programmeertalen bieden. If-else kan echter prachtig worden ingebed in functies om alle mogelijke resultaten te verkrijgen.

Aanbevolen artikelen

Dit is een gids voor If Statement in R. Hier bespreken we de if-else of if-else if-else-instructie die effectief kan worden gebruikt om met toestandsgerelateerde aspecten te werken. U kunt ook de volgende artikelen bekijken voor meer informatie -

  1. Wat is R-programmeertaal?
  2. R-pakketten
  3. R Gegevenstypen
  4. Indien anders Verklaring in C
  5. IF-Else-verklaring in Matlab

Categorie: