While Loop in R con Esempio

Anonim

Un ciclo è un'istruzione che continua a funzionare finché una condizione non è soddisfatta. La sintassi per un ciclo while è la seguente:

while (condition) {Exp}

Mentre il diagramma di flusso del ciclo

Nota : ricordarsi di scrivere una condizione di chiusura ad un certo punto altrimenti il ​​ciclo continuerà indefinitamente.

Esempio 1:

Facciamo un esempio molto semplice per comprendere il concetto di ciclo while. Creerai un ciclo e dopo ogni esecuzione aggiungi 1 alla variabile memorizzata. È necessario chiudere il ciclo, quindi diciamo esplicitamente a R di interrompere il ciclo quando la variabile ha raggiunto 10.

Nota : se vuoi vedere il valore del ciclo corrente, devi racchiudere la variabile all'interno della funzione print ().

#Create a variable with value 1begin <- 1#Create the loopwhile (begin <= 10){#See which we arecat('This is loop number',begin)#add 1 to the variable begin after each loopbegin <- begin+1print(begin)}

Produzione:

## This is loop number 1[1] 2## This is loop number 2[1] 3## This is loop number 3[1] 4## This is loop number 4[1] 5## This is loop number 5[1] 6## This is loop number 6[1] 7## This is loop number 7[1] 8## This is loop number 8[1] 9## This is loop number 9[1] 10## This is loop number 10[1] 11

Esempio 2:

Hai comprato un'azione al prezzo di 50 dollari. Se il prezzo scende al di sotto di 45, vogliamo abbreviarlo. Altrimenti, lo teniamo nel nostro portafoglio. Il prezzo può oscillare tra -10 e +10 intorno a 50 dopo ogni ciclo. Puoi scrivere il codice come segue:

set.seed(123)# Set variable stock and pricestock <- 50price <- 50# Loop variable counts the number of loopsloop <- 1# Set the while statementwhile (price > 45){# Create a random price between 40 and 60price <- stock + sample(-10:10, 1)# Count the number of looploop = loop +1# Print the number of loopprint(loop)}

Produzione:

## [1] 2## [1] 3## [1] 4## [1] 5## [1] 6## [1] 7
cat('it took',loop,'loop before we short the price. The lowest price is',price)

Produzione:

## it took 7 loop before we short the price.The lowest price is 40