R Continua per Loop

Gustavo du Mortier 26 aprile 2021
R Continua per Loop

Quando si hanno molte righe di codice all’interno di un bucle e si desidera che R continui per l’iterazione successiva quando viene soddisfatta una condizione, è possibile scrivere una clausola if che valuti la condizione e, se è vera, saltare tutto nella loop e continua per l’iterazione successiva. Questo salto viene eseguito con l’istruzione next.

Un caso tipico è quando si utilizza un bucle per passare attraverso una serie di elementi di dati ed eseguire alcuni calcoli su ciascuno di essi, tralasciando quelli che soddisfano una particolare condizione. Nell’esempio seguente, passiamo attraverso un vettore di numeri, moltiplicandoli tutti tranne quelli che sono multipli di 5.

result <- 1
base <- 5
x <- c(7, 5, 3, 10, 8, 4, 11, 15, 6, 13)
for (num in x) {
    if (num %% base == 0) {
        next
    }
    result <- result * num
}
paste ('Result:', result)

Produzione:

[1] 576576

Nota che il risultato è la moltiplicazione di tutti i numeri vettoriali tranne 5, 10 e 15.

Articolo correlato - R Loop