Wprowadzenie do instrukcji If w R

Instrukcja „if” w R jest instrukcją warunkową, która służy do testowania warunków lub generowania danych wyjściowych opartych na warunkach. Po instrukcji if w R może następować wiele innych ifs, a na końcu instrukcja else. Działa sekwencyjnie, np. Jeśli warunek pozytywnie sprawdzi, czy sam, to kolejne else ifs i instrukcja else nie zostaną wykonane. Podobnie, jeśli wykona się którykolwiek z ifów, to kolejne instrukcje if i instrukcja else nie zostaną wykonane. Inna zostanie wykonana tylko wtedy, gdy poprzedni if ​​i else ifs (jeśli są obecne) testuje negatywnie na warunek.

Składnia

Składnia instrukcji if-else w języku R jest następująca:

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.
)

Składnia instrukcji if-else if-else w języku R jest następująca:

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.
)

Schemat przepływu

Oto schemat przepływu wspomniany poniżej

Przykłady instrukcji If w R

Zrozumienie instrukcji if w R poprzez przykłady

Instrukcja if w R może być używana w różnych sytuacjach i działa z różnymi typami danych. Spróbujemy go wdrożyć, aby zrozumieć jego działanie od podstawowych do najbardziej złożonych sytuacji. Przyjrzyjmy się temu bardziej szczegółowo.

Przykład 1

W tym przykładzie sprawdzimy, czy liczba jest podzielna przez 21, czy nie. Utworzymy funkcję, która testuje ten warunek podziału za pomocą instrukcji if-else. Następnie przekażemy testowaną liczbę do funkcji.

Poniższy zrzut ekranu pokazuje funkcję w R, która osadza if-else do sprawdzania poprawności testu podzielności dla liczby.

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

W powyższym kodzie liczba przekazana do funkcji zostanie najpierw sprawdzona pod kątem warunku w instrukcji if. Tak więc, jeśli liczba podzielona 21 zwraca zero jako resztę, wówczas kod w, jeśli blok zostanie wydrukowany jako wynik, w przeciwnym razie zostanie wykonane.

Przekazywanie różnych liczb w powyższej funkcji daje wyniki, jak pokazano poniżej:

Przykład nr 2

W drugim przykładzie rozszerzymy pętlę if-else na instrukcję if-else if-else. W tym przypadku zamierzamy sprawdzić, czy liczba jest podzielna przez 7 i 9, tylko przez 7, ale nie przez 9, tylko przez 9, ale nie przez 7 lub przez żadną z dwóch liczb. Jeśli którykolwiek warunek jest spełniony, odpowiedni blok kodu zostanie wykonany. Może istnieć wiele instrukcji else-if. Jak wspomniano wcześniej, blok kodu w else wykonuje się tylko wtedy, gdy nie jest spełniony żaden warunek. Instrukcje wyjściowe w odpowiednich blokach muszą poprawnie przekazywać znaczenie.

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.")
)
)

Przekazywanie różnych liczb w funkcji zdefiniowanej za pomocą powyższego kodu generuje dane wyjściowe, jak pokazano na poniższym zrzucie ekranu.

Przekazywanie różnych liczb w zdefiniowanej przez użytkownika funkcji divide.function () daje wynik jak wyżej. Tutaj możliwe są cztery typy liczb; po pierwsze te podzielne przez 7 i 9, takie jak 63 i 126, po drugie te podzielne przez 7, ale nie przez 9, takie jak 14 i 35, po trzecie te podzielne przez 9, ale nie przez 7, takie jak 18 i 36, i wreszcie te, które są podzielne przez żadną z dwóch liczb całkowitych tj. 7 i 9. Warunek końcowy stanowi część instrukcji else, ponieważ sprawdzane są wszystkie inne możliwe warunki, w poprzednim if i else ifs.

Przykład nr 3

W tym przykładzie sprawdzimy, czy liczba jest liczbą pierwszą, czy nie. Każda liczba, która jest podzielna tylko przez siebie i jedną, nazywana jest liczbą pierwszą. Należy jednak zauważyć, że 1 nie jest liczbą pierwszą, ponieważ nie spełnia warunku, aby liczba była liczbą pierwszą, ponieważ w przypadku 1 obie liczby, tj. Sama i 1, są takie same. Co więcej, jeśli użytkownik przekaże do funkcji liczbę ujemną, aby sprawdzić, czy jest liczbą pierwszą, czy nie? Tak więc wszystkie powyższe warunki będą musiały zostać uwzględnione przy wdrażaniu funkcji. Zobaczmy, jak wygląda funkcja po jej wdrożeniu, jak pokazano poniżej.

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.")
)
)
)

  • Powyższy zrzut ekranu pokazuje zdefiniowaną przez użytkownika funkcję primecheck.function () w języku R. Jak widać, do wykonania zadania kod wykorzystuje zagnieżdżone if-else. Zobaczmy, jak działa kod. Funkcja primecheck.function () przyjmuje tylko jeden parametr. Początkowo zmienna flag jest ustawiona na 1. Następnie rozpoczyna się sekcja if-else if-else. Instrukcja if sprawdza, czy liczba jest większa od zera, czy nie. Jest to bardzo ważny warunek i musi być pierwszym warunkiem.
  • Jeśli nie, funkcja generuje odpowiedni komunikat. Następnie else-if sprawdza, czy liczba jest równa 1 i informuje użytkownika, że ​​1 nie jest liczbą pierwszą; powód został podany w poprzedniej sekcji. Jeśli żaden z dwóch powyższych warunków nie jest spełniony, wykonywany jest blok kodu w sekcji else. W innym przypadku, teraz zasadniczo próbujemy sprawdzić, czy liczba jest liczbą pierwszą, czy nie dla pętli for.
  • Pętla for dzieli liczbę od 2 do liczby minus 1 zakres przez zmienną przyrostową, aw tym zakresie, jeśli zostanie podzielona, ​​flaga zostanie ustawiona na zero, co oznacza, że ​​liczba nie jest liczbą pierwszą. Instrukcja if-else poza pętlą testuje warunek na fladze i generuje odpowiednie dane wyjściowe.

Funkcja działa i daje wyniki, jak pokazano na poniższym zrzucie ekranu.

Wniosek

W programowaniu R instrukcję if-else lub if-else if-else można skutecznie wykorzystać do pracy z aspektami związanymi z warunkami. Skrypt R może nie ułatwiać implementacji instrukcji if w taki sam sposób, jak oferują inne języki programowania. Jednak if-else można pięknie osadzić w funkcjach, aby uzyskać wszystkie możliwe wyniki.

Polecane artykuły

Jest to przewodnik po instrukcji If w R. Tutaj omawiamy instrukcję if-else lub if-else if-else można skutecznie wykorzystać do pracy z aspektami związanymi z warunkami. Możesz także zapoznać się z następującymi artykułami, aby dowiedzieć się więcej -

  1. Co to jest język programowania R?
  2. Pakiety R.
  3. R Typy danych
  4. Instrukcja if-else w C
  5. Instrukcja IF-Else w Matlabie

Kategoria: