Ενώ βρόχος στο R με παράδειγμα

Anonim

Ένας βρόχος είναι μια δήλωση που συνεχίζει να λειτουργεί μέχρι να ικανοποιηθεί μια συνθήκη. Η σύνταξη για έναν βρόχο για λίγο είναι η ακόλουθη:

while (condition) {Exp}

Ενώ το Διάγραμμα ροής βρόχου

Σημείωση : Θυμηθείτε να γράψετε μια κατάσταση κλεισίματος σε κάποιο σημείο, διαφορετικά ο βρόχος θα συνεχιστεί επ 'αόριστον.

Παράδειγμα 1:

Ας δούμε ένα πολύ απλό παράδειγμα για να κατανοήσουμε την έννοια του loop loop. Θα δημιουργήσετε έναν βρόχο και μετά από κάθε εκτέλεση προσθέστε 1 στην αποθηκευμένη μεταβλητή. Πρέπει να κλείσετε το βρόχο, επομένως λέμε ρητά στο R να σταματήσει να βγαίνει όταν η μεταβλητή έφτασε στο 10.

Σημείωση : Εάν θέλετε να δείτε την τρέχουσα τιμή βρόχου, πρέπει να τυλίξετε τη μεταβλητή μέσα στη λειτουργία εκτύπωσης ().

#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)}

Παραγωγή:

## 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

Παράδειγμα 2:

Αγοράσατε ένα απόθεμα στην τιμή των 50 δολαρίων. Εάν η τιμή είναι χαμηλότερη από 45, θέλουμε να την μειώσουμε. Διαφορετικά, το διατηρούμε στο χαρτοφυλάκιό μας. Η τιμή μπορεί να κυμαίνεται μεταξύ -10 και +10 περίπου 50 μετά από κάθε βρόχο. Μπορείτε να γράψετε τον κωδικό ως εξής:

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)}

Παραγωγή:

## [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)

Παραγωγή:

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