Introduzione all'istruzione If in R

L'istruzione "if" in R è un'istruzione condizionale che viene utilizzata per testare una o più condizioni o generare un output basato sulle condizioni. Un'istruzione if in R può essere seguita da più if if, e infine dall'istruzione else. Funziona in modo sequenziale, ad esempio, se una condizione risulta positiva su se stessa, quindi ifs altrimenti else e l'istruzione else non verranno eseguiti. Allo stesso modo, se viene eseguito qualsiasi altro ifs, le successive if if e l'istruzione else non verranno eseguite. L'altro verrà eseguito solo se i precedenti if e else ifs (se presenti) risultano negativi sulla condizione.

Sintassi

La sintassi dell'istruzione if-else in R è la seguente:

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

La sintassi dell'istruzione if-else if-else in R è la seguente:

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

Diagramma di flusso

Ecco il diagramma di flusso menzionato di seguito

Esempi di istruzione If in R

Comprensione dell'istruzione if in R tramite esempi

L'istruzione if in R può essere utilizzata in varie situazioni e funziona con vari tipi di dati. Cercheremo di implementarlo per comprenderne il funzionamento, dalle situazioni di base a quelle più complesse. Procediamo a capirlo in modo più dettagliato.

Esempio 1

In questo esempio, verificheremo se un numero è divisibile per 21 o meno. Creeremo una funzione che testa questa condizione di divisione usando l'istruzione if-else. Quindi, passeremo il numero da testare nella funzione.

La seguente schermata mostra la funzione in R che incorpora if-else per la convalida di un test di divisibilità per un numero.

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

Nel codice precedente, un numero passato nella funzione verrà prima convalidato rispetto a una condizione nell'istruzione if. Quindi, se il numero quando viene diviso 21 restituisce zero come resto, il codice in if block verrà stampato come output altrimenti verrà eseguito.

Passare numeri diversi nella funzione sopra dà risultati come mostrato di seguito:

Esempio n. 2

Nel secondo esempio, estenderemo il ciclo if-else all'istruzione if-else if-else. Qui, intendiamo verificare se un numero è divisibile per 7 e 9, solo per 7 ma non per 9, solo per 9 ma non per 7 o per nessuno dei due numeri. Se una condizione è soddisfatta, verrà eseguito il blocco di codice corrispondente. Possono esserci più istruzioni else-if. Come accennato in precedenza, il blocco di codice in else viene eseguito solo quando nessuna condizione è soddisfatta. Le istruzioni di output nei blocchi corrispondenti devono trasmettere correttamente il significato.

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

Passare numeri diversi nella funzione definita usando il codice sopra genera un output come mostrato nella schermata qui sotto.

Passando numeri diversi nella funzione definita dall'utente divide.function () si ottiene il risultato come sopra. Qui, sono possibili quattro tipi di numeri; in primo luogo quelli divisibili per 7 e 9 come 63 e 126, in secondo luogo quelli divisibili per 7 ma non per 9 come 14 e 35, in terzo luogo quelli divisibili per 9 ma non per 7 come 18 e 36, e infine quelli che sono divisibili da nessuno dei due numeri interi cioè 7 e 9. La condizione finale costituisce la parte dell'istruzione else poiché, tutte le altre possibili condizioni sono verificate, nei precedenti if e else ifs.

Esempio n. 3

In questo esempio, controlleremo se un numero è un numero primo o no. Qualsiasi numero, che è divisibile solo per se stesso e uno, è chiamato numero primo. Tuttavia, si deve notare che 1 non è un numero primo in quanto non soddisfa la condizione che un numero sia primo, perché, nel caso di 1, entrambi i numeri, cioè se stesso e 1, sono uguali. Inoltre, cosa succede se un utente passa un numero negativo nella funzione per verificare se è primo o no? Pertanto, tutte le condizioni di cui sopra dovranno essere prese in considerazione durante l'implementazione della funzione. Vediamo come appare la funzione quando è implementata, come mostrato di seguito.

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

  • Lo screenshot sopra mostra la funzione definita dall'utente primecheck.function () in R. Come si può vedere, il codice utilizza if-else nidificato per eseguire l'attività. Vediamo come funziona il codice. La funzione primecheck.function () accetta solo un parametro. Inizialmente, la variabile flag è impostata su 1. Quindi inizia la sezione if-else if-else. L'istruzione if verifica se il numero è maggiore o uguale a zero. Questa è una condizione molto importante e deve essere la prima condizione.
  • In caso contrario, il messaggio appropriato viene generato dalla funzione. Successivamente, else-if verifica se il numero è uguale a 1 e dice all'utente che 1 non è un numero primo; il motivo è stato indicato nella sezione precedente. Se nessuna delle due condizioni precedenti è soddisfatta, viene eseguito il blocco di codice nella sezione else. In altrimenti, ora, essenzialmente proviamo a verificare se il numero è primo o no per il ciclo.
  • Il ciclo for divide il numero da 2 a un numero meno 1 per la variabile di incremento e in questo intervallo, se viene diviso, il flag viene impostato su zero, il che significa che il numero non è un numero primo. L'istruzione if-else all'esterno di loop verifica una condizione sul flag e genera un output appropriato.

La funzione funziona e fornisce i risultati come mostrato nello screenshot seguente.

Conclusione

Nella programmazione R, l'istruzione if-else o if-else if-else può essere efficacemente utilizzata per lavorare con aspetti relativi alle condizioni. Lo script R potrebbe non facilitare l'implementazione di istruzioni if ​​allo stesso modo di altri linguaggi di programmazione. Tuttavia, if-else può essere magnificamente incorporato nelle funzioni per ottenere tutti i possibili risultati.

Articoli consigliati

Questa è una guida all'istruzione If in R. Qui discutiamo dell'istruzione if-else o if-else if-else può essere efficacemente utilizzata per lavorare con aspetti relativi alle condizioni. Puoi anche dare un'occhiata ai seguenti articoli per saperne di più -

  1. Cos'è il linguaggio di programmazione R?
  2. Pacchetti R
  3. R Tipi di dati
  4. Dichiarazione if-else in C
  5. Dichiarazione IF-Else in Matlab

Categoria: