Istruzioni if-else in R: come funzionano le condizioni
Come in pressoché tutti gli altri linguaggi, anche nella programmazione in R l’esecuzione limitata di singoli blocchi di codice è imprescindibile. Con la struttura di controllo if-else potete formulare istruzioni, controllando l’esecuzione del vostro programma.
Possibilità di impiego delle istruzioni if-else in R
Le istruzioni if-else, spesso chiamate anche rami condizionali, fanno in modo che determinati blocchi di istruzioni siano eseguiti soltanto quando una condizione è soddisfatta. La funzionalità condizionale delle istruzioni if-else è elementare, pertanto è imprescindibile nella maggior parte dei programmi. Soprattutto negli algoritmi più complessi è spesso necessario usare queste condizioni.
Usare istruzioni if-else nel codice sorgente è pratico ad esempio per testare un determinato valore nell’input di un utente. Tuttavia, in R le strutture if-else trovano applicazione perlopiù insieme ai cicli for in R: durante una ricerca in una struttura di dati, potete interrompere il ciclo con un’istruzione if non appena avete trovato il valore desiderato.
Un’ottima idea per conservare i vostri progetti e programmi in un luogo sicuro è lo spazio web di IONOS. I backup automatici assicurano che i vostri dati siano protetti al meglio contro eventuali perdite.
La sintassi delle istruzioni if-else in R
Potete inserire le istruzioni if-else in R in diversi modi, combinando fra loro le parole chiave “if”, “else” ed “else if”. Nella logica di base non cambia comunque nulla: l’esecuzione di singoli blocchi di codice è sempre collegata a una condizione.
Anche la sintassi è definita in modo rigoroso. Alla parola chiave “if” segue sempre una condizione specificata tra parentesi tonde. All’interno della condizione sono spesso utilizzati operatori di confronto aritmetici o logici. Segue un blocco di codice fra parentesi graffe, che viene eseguito solo quando è soddisfatta la condizione specificata. A seconda della finalità della vostra istruzione, con la parola chiave “else” potete ora introdurre un blocco di codice che viene eseguito quando la condizione if non è soddisfatta. Inoltre, la parola chiave “else” vi offre la possibilità di formulare altre condizioni.
Se i blocchi di codice che desiderate eseguire sono costituiti da una sola riga, nelle istruzioni if-else in R potete tralasciare le parentesi graffe. Può essere utile per migliorare la leggibilità. Per chi ha appena iniziato a imparare a programmare è tuttavia consigliabile inserire le parentesi come d’abitudine per evitare che qualcosa vada storto.
L’istruzione if in R
Se desiderate eseguire nel vostro codice una determinata azione condizionale e proseguire con l’esecuzione standard del programma, vi basta utilizzare un’unica istruzione if.
a <- 0
b <- 40
if (a == 0) {
print("Zero division not allowed")
stop()
}
c <- b / a
RNell’esempio di codice sopra, il numero salvato nella variabile b deve essere diviso per il numero nella variabile a. Poiché notoriamente la divisione per 0 non è ammessa, con la condizione if si verifica se il valore salvato in a è uno 0. Solo se questa condizione è soddisfatta il programma esegue il codice fra parentesi graffe con cui l’esecuzione viene arrestata.
L’istruzione if-else in R
Se volete eseguire blocchi di codice in base a una condizione non soddisfatta, potete usare un’istruzione if-else. Come nel caso precedente, occorre formulare prima una condizione if. Se tale condizione non è soddisfatta, il programma salta a un blocco di codice scritto appositamente per questa evenienza. Per chiarire, ricorriamo anche qui a un esempio:
a <- 4
b <- 2
if (b < a) {
print("a is greater than b")
}
else {
print("a and b are equal or b is greater than a")
}
RVengono create nuovamente due variabili a e b che contengono numeri interi. Con la condizione if si verifica se il valore b è inferiore ad a. Se sì, viene eseguito il blocco di istruzione all’interno delle parentesi graffe. In caso contrario, il programma salta direttamente al blocco di istruzione dopo la parola chiave “else” ed esegue le righe di codice in esso contenute.
L’istruzione else-if in R
In alcuni casi potreste non voler verificare una sola condizione, ma più condizioni contemporaneamente. A questo scopo è disponibile la parola chiave “else if”. Se avete familiarità con le istruzioni if-else di Python, probabilmente conoscete già l’istruzione else-if in R con la parola chiave “elif”.
a <- 4
b <- 2
if (b < a) {
print("a is greater than b")
}
else if (b > a) {
print("b is greater than a")
}
RL’esempio di codice non è molto diverso da quello precedente. Semplicemente, l’istruzione else è stata sostituita da un’istruzione else-if. Come avviene per l’istruzione if, dopo l’istruzione else-if occorre inserire una condizione fra parentesi tonde.
Tenete presente che le condizioni specificate con “else if” si escludono a vicenda. Se, come nel nostro caso, la prima condizione è già soddisfatta, il codice introdotto con “else if” non viene proprio eseguito. Con le istruzioni else-if si risparmia quindi potenza di calcolo rispetto a usare diverse istruzioni if semplici.