Ciclo for in R: come funziona
Come pressoché qualsiasi altro linguaggio di programmazione, anche R, funzionale e orientato agli oggetti, supporta la struttura di controllo del ciclo for. Con un ciclo for in R potete iterare su un’enumerazione o anche realizzare cicli di conteggio.
Possibilità di impiego
Sia chi sta imparando a programmare sia chi sviluppa programmi da tempo ha sicuramente già incontrato un ciclo for.
Come in altri linguaggi, anche nella programmazione in R il ciclo for è sempre utilizzato quando si conosce in anticipo il numero di esecuzioni del ciclo e si desidera eseguire ripetutamente determinati blocchi di codice. Un ciclo for è quindi lo strumento preferito ad esempio per implementare in un programma un contatore che conta fino al numero cinque.
Molti linguaggi di programmazione (come Java) supportano inoltre i cicli foreach, con cui potete iterare direttamente su una matrice o una lista e accedere a ciascun elemento della struttura di dati. Una funzionalità particolarmente pratica se si vuole eseguire un’operazione per tutti gli elementi di una struttura di dati. Anche in R è supportata questa variante del ciclo for. Il ciclo foreach è introdotto dalla parola chiave “for” anche in R.
Ma, in sostanza, ciascun ciclo for in R può anche essere sostituito da un ciclo while. Oltre alla maggiore leggibilità, il vantaggio chiave dei cicli for è la compattezza del codice impiegato.
Con lo spazio web di IONOS potete mettere online tutti i vostri progetti comodamente. Inoltre, grazie ai backup regolari, lo spazio di archiviazione web sicuro protegge i vostri programmi al meglio dalle perdite di dati.
La sintassi del ciclo for in R
Se volete utilizzare un ciclo for in R dovete tenere conto delle particolarità sintattiche della sua struttura.
Un ciclo for è costituito sostanzialmente da due elementi essenziali: un’intestazione e un corpo. Poiché i cicli for in R sono controllati dall’intestazione, viene eseguita questa per prima. Soltanto se la condizione specificata è soddisfatta può essere eseguito il codice formulato nel corpo.
L’intestazione è introdotta dalla parola chiave “for”. Si inserisce quindi il nome della variabile di conteggio fra parentesi tonde, seguita dalla parola chiave “in”. Dopodiché si indica su cosa si desidera iterare. Può trattarsi ad esempio di un intervallo di numeri, ma anche di una lista o di un vettore. Il corpo del ciclo che segue è racchiuso fra parentesi graffe.
I diversi cicli for in R
Cicli di conteggio
Come i cicli for in Python, anche i cicli for in R lavorano principalmente con un intervallo di numeri. Se volete restituire sullo schermo tutti i numeri tra 1 e 10, dovete creare un ciclo for come segue:
for (x in 1:10) {
print(x)
}
RNell’esempio di codice sopra vediamo che nell’intestazione del ciclo for in R è introdotta una variabile x. La parola chiave “in” specifica che questa variabile deve muoversi in un intervallo di valori compreso tra 1 e 10. L’incremento a passi di numeri interi è eseguito automaticamente in R. Tenete presente che il numero indicato nella seconda posizione è incluso, a differenza della funzione range di Python.
Con il vostro ciclo di conteggio potete anche contare verso il basso a partire da un numero. Basta scambiare i due limiti nell’intestazione, indicando per primo il numero più grande. Anche in questo caso il decremento è eseguito automaticamente in R:
for (x in 10:1) {
print(x)
}
RIl vostro programma restituirà sullo schermo tutti i numeri interi che iniziano con 10 e terminano con 1.
Cicli foreach
Potete servirvi della logica dei cicli foreach anche se in R non è integrata una parola chiave propria. Anche questi cicli sono introdotti da “for”.
cars <- list("limousine", "cabrio", "suv")
for (x in cars) {
print (x)
}
RQui visualizzate una lista denominata cars in cui sono stati salvati i diversi tipi di auto. Il successivo ciclo for itera su ciascun elemento di questa lista, restituendolo sullo schermo. Dovete indicare il nome dell’elemento sul quale volete iterare (nel nostro caso, cars) dopo la parola chiave “in”.
Interruzione di un ciclo for in R: la parola chiave “break”
Se ad esempio desiderate cercare un elemento specifico in una lista, può essere utile interrompere il ciclo for già nel momento in cui lo trovate. Così, in molti casi vi risparmiate esecuzioni inutili del ciclo, riducendo la potenza di calcolo necessaria per il programma. A questo scopo R contiene la parola chiave “break”:
cars <- list("limousine", "cabrio", "suv", "supersport", "oldtimer")
for (x in cars) {
print (x)
if (x == "suv") {
break
}
}
RNell’esempio di codice sopra abbiamo esteso la nostra lista chiamata cars. Vogliamo però interrompere la restituzione dei tipi di auto sullo schermo non appena troviamo il tipo SUV. Nella condizione if-else in R utilizziamo quindi la già menzionata parola chiave “break”.
Saltare esecuzioni di cicli for in R: la parola chiave “next”
In alcune applicazioni può essere utile saltare determinate esecuzioni anziché fermare l’intera esecuzione del ciclo for. Anche a questo scopo il linguaggio di programmazione R mette a disposizione una parola chiave apposita, “next”:
cars <- list("limousine", "cabrio", "suv", "supersport", "oldtimer")
for (x in cars) {
if (x == "suv") {
next
}
print(x)
}
RL’esempio di codice più in alto è ora stato modificato in modo che siano restituiti tutti i tipi di auto della lista tranne i SUV. Anche qui si usa una condizione if, che verifica se l’elemento corrente della lista è un SUV. Se lo è, le istruzioni restanti del corpo del ciclo vengono saltate, proseguendo con l’esecuzione del ciclo for di R.