Come scrivere un ciclo di ripetizione in r (3 esempi)
Un ciclo di ripetizione in R può essere utilizzato per eseguire un’azione ripetutamente fino al raggiungimento di una condizione di arresto.
È possibile utilizzare la seguente sintassi di base per scrivere un ciclo di ripetizione in R:
repeat {
#do something
if (some condition){
break
}
}
Gli esempi seguenti mostrano come utilizzare un ciclo di ripetizione in diversi scenari.
Esempio 1: stampare i valori fino al raggiungimento di un numero specifico
Il codice seguente mostra come utilizzare un ciclo di ripetizione per stampare valori che iniziano da 1 fino al raggiungimento di 10 :
#define starting value
x <- 0
#perform repeat-loop
repeat {
x <- x+1
print (x)
if (x >= 10){
break
}
}
[1] 1
[1] 2
[1] 3
[1] 4
[1] 5
[1] 6
[1] 7
[1] 8
[1] 9
[1] 10
Ecco come funzionava questo codice:
- Impostiamo il valore iniziale come x = 0.
- Abbiamo detto a R di incrementare x di 1, quindi stampare x.
- Abbiamo detto a R di interrompere il ciclo di ripetizione una volta che x raggiunge un valore pari o superiore a 10.
Esempio 2: aggiungere valori al vettore fino al raggiungimento di un numero specifico
Il codice seguente mostra come utilizzare un ciclo di ripetizione per aggiungere valori a un vettore fino al raggiungimento di un numero specifico:
#define empty vector and starting value
data <-c()
x <- 0
#perform repeat-loop
repeat {
x <- x+1
data[x] <- x
print (data)
if (x >= 5){
break
}
}
[1] 1
[1] 1 2
[1] 1 2 3
[1] 1 2 3 4
[1] 1 2 3 4 5
Ecco come funzionava questo codice:
- Abbiamo creato un vettore vuoto e impostato il valore iniziale come x = 0.
- Abbiamo detto a R di incrementare x di 1, quindi di inserire il valore di x nella xesima posizione del vettore.
- Abbiamo detto a R di interrompere il ciclo di ripetizione una volta che x raggiunge un valore pari o superiore a 5.
Esempio 3: modificare i valori nel frame di dati fino al raggiungimento di un numero specifico
Il codice seguente mostra come utilizzare un ciclo di ripetizione per modificare i valori di un frame di dati esistente fino al raggiungimento di un numero specifico:
#define data frame and starting value
df <- data. frame (A=c(6, 7, 2, 8),
B=c(2, 4, 5, 5))
x <- 0
#perform repeat-loop
repeat {
x <- x+1
df$A[x] <- x
df$B[x] <- x * 2
if (x >= nrow(df)){
break
}
}
#view resulting data frame
df
AB
1 1 2
2 2 4
3 3 6
4 4 8
Ecco come funzionava questo codice:
- Abbiamo creato un frame di dati vuoto e abbiamo impostato il valore iniziale come x = 0.
- Abbiamo detto a R di incrementare x di 1, quindi di inserire il valore di x nella xesima posizione della colonna A e di inserire il valore di x*2 nella xesima posizione della colonna B.
- Abbiamo detto a R di interrompere il ciclo di ripetizione una volta che x raggiunge un valore uguale o maggiore del numero di righe nel frame di dati.
Risorse addizionali
I seguenti tutorial spiegano come eseguire altre attività comuni in R:
Come creare un ciclo For nidificato in R
Come scrivere un’istruzione If Else annidata in R
Come scorrere i nomi delle colonne in R