Įvaldykite for kilpą, kad supaprastintumėte sudėtingus skaičiavimus ir kitas pasikartojančias operacijas.
Ciklos yra pagrindinė programavimo struktūra, kuri paima kodo bloką ir paleidžia jį pakartotinai. Kilpos yra vienas iš kilpų tipų, kurių yra beveik visose kalbose. Kilpos R yra neatsiejama duomenų analizės dalis.
Jie naudojami įvairiems tikslams – nuo išvesties formatavimo iki didelių duomenų rinkinių skaičiavimų. For kilpos naudojimas R leidžia lengviau atlikti duomenų analizę.
R's Basic for Loop
R kalbos ciklas veikia panašiai kaip standartinė kilpoms, rastoms Go ir dauguma kitų programavimo kalbų. Atsižvelgiant į pradinį tašką, jame esantis kodas bus paleistas tam tikrą skaičių kartų.
Skaitiklis turi iteraciją, kad ciklas šiuo metu yra įjungtas, ir jūs galite jį pasiekti iš susieto kodo bloko. Ciklos gali būti vykdomos fiksuotam iteracijų skaičiui arba visam masyvo, vektoriaus ar sąrašo ilgiui.
Fiksuotos iteracijos kilpos
Fiksuotos iteracinės kilpos R yra tokios formos:
dėl (x in1:10) {
spausdinti (x)
}
Ciklo x yra kintamasis, kuris saugos ciklo iteraciją.
Po raktinio žodžio „in“ yra ciklo pradžios ir pabaigos taškai. Ciklas pradės savo iteratorių nuo pirmojo skaičiaus.
Kiekvieną kartą paleidus kodą cikle, jis patikrins, ar iteratorius yra lygus skaičiui po dvitaškio.
Jei taip, kodo vykdymas bus tęsiamas po ciklo. Jei ne, iteratorius padidės 1, o skliausteliuose esantis kodo blokas vėl veiks.
Masyvų, sąrašų ir vektorių kilpoms
Tiesiog kaip naršydamas Python žodyną, galite kartoti atitinkamas R duomenų struktūras naudodami for kilpą. Galite naudoti bet kokią kartojamą duomenų struktūrą po raktinio žodžio „in“, vietoj fiksuoto pradžios ir pabaigos taško.
Tokiu būdu pasikeitus, pasikeis kodo elgesys. Čia ciklas veiks kaip foreach ciklas iš tokių kalbų kaip C#:
darbuotojai "Benas", "Džeina", "Suzi", "Džošas", "Karolis")
dėl (x in darbuotojai) {
spausdinti (x)
}
Dabar vietoj x laikys dabartinę ciklo iteraciją, o objektas iš masyvo arba sąrašo, kuriame ciklas šiuo metu yra įjungtas. Po kiekvieno ciklo pabaigos, jei sąraše, masyve ar vektoriuje yra daugiau elementų, x bus nustatytas į kitą elementą. Jei elementų nėra daugiau, vykdymas bus tęsiamas su kodu po ciklo.
c primityvioji funkcija ir kilpoms
Be jau užpildytų duomenų struktūrų, R gali sudaryti naują už ciklo deklaracijoje. Norėdami tai padaryti, naudokite funkciją c, kad sujungtumėte kelis elementus į naują vektorių.
Galite supaprastinti aukščiau pateiktą pavyzdį naudodami šį metodą:
dėl (x in c("Benas", "Džeina", "Suzi", "Džošas", "Karolis")) {
spausdinti (x)
}
Atminkite, kad išvestis yra tokia pati kaip ir anksčiau:
R's Jump pareiškimai
Du teiginiai leidžia praleisti ciklo iteracijas: break ir next. Jie tai atlieka įvairiais būdais. Turėtumėte įsitikinti, kad žinote skirtumą tarp šių dviejų.
Pertraukos raktinis žodis
Kai ciklas savo viduje susiduria su pertraukos teiginiu, ciklas iškart uždaro. Kadangi programa išeina iš ciklo, kai tik pasiekia pertraukos raktinį žodį, ji nebepaleis jokio likusio kodo:
dienos "pirmadienis", "antradienis", "trečiadienis", "ketvirtadienis", "penktadienis", "šeštadienis",
"sekmadienis")dėl (x in dienos) {
jeigu (x == "šeštadienis") {
pertrauka
}
spausdinti (x)
}
Aukščiau pateikta kilpa bus spausdinama visomis savaitės dienomis, bet nė viena iš savaitgalio dienų.
Kitas raktinis žodis
Kitas raktinis žodis taip pat praleidžia iteraciją, tačiau, skirtingai nei pertrauka, kitas neuždaro ciklo iš karto. Likęs atviras ciklas reiškia, kad joks papildomas kodas dabartinėje ciklo viduje nebus paleistas, bet kita iteracija bus tęsiama, kaip planuota:
dienos "pirmadienis", "antradienis", "trečiadienis", "ketvirtadienis", "penktadienis", "šeštadienis",
"sekmadienis")dėl (x in dienos) {
jeigu (x == "šeštadienis") {
Kitas
}
spausdinti (x)
}
Ši kilpa bus išvesta kiekvieną savaitės dieną ir sekmadienį, bet nebus spausdinama šeštadienį.
Ciklų pavyzdys R
Yra daug įvairių situacijų, kai kilpos yra naudingos R. Jie gali būti puikus būdas atlikti pasikartojančius skaičiavimus, pvz., pridėti skaičius, kad gautumėte bendrą sumą:
užsakymai 23.4, 699.8, 1042.0)
iš viso 0.0dėl (įsakymas in užsakymai) {
iš viso }
katė("iš viso yra $", iš viso, "\n")
Šiame pavyzdyje prie bendros sumos bus pridėta kiekvieno atskiro užsakymo suma sąraše.
Arba for ciklas gali padėti greitai ir lengvai išvesti didelį kiekį gerai suformatuotų duomenų:
day_totals 567.82, 364.72, 762.81, 354.99, 622.87)
dėl (dieną in1:length (day_totals)) {
katė("Diena #", diena, ": $", day_totals[day],"\n")
diena 1
}
Galite naudoti for ciklą, kad išspausdintumėte kiekvieną savaitės dieną ir bendrą tos konkrečios dienos pardavimą.
Galite naudoti for kilpą rezultatams apskaičiuoti ir padaryti juos prieinamus kodui už ciklo ribų, kad gautumėte įvairios informacijos:
testo_balai 67, 89, 72, 44)
score_total 0
testų_skaičius 0dėl (balas in test_balai) {
rezultatas_visas testų_skaičius 1
}
vidutinis_balas spausdinti (vidutinis_balas)
Aukščiau pateikta kilpa apskaičiuos vidutinį studentų testo rezultatą.
Viskas, ką reikia žinoti apie R's for Loops
Labai svarbu išmokti paleisti nustatytą skaičių kilpų arba kartoti duomenų rinkinį be fiksuoto ilgio.
Nesvarbu, ar reikia atlikti pakartotinius masyvo skaičiavimus, spausdinti kiekvieną sąrašo elementą ar rodyti didelę duomenų partiją skaitoma forma, R's for loop gali padėti.
Pagrindinių for loop principų supratimas yra vertingas įgūdis, kurį turite turėti savo arsenale, o jo įvaldymas gali padėti parašyti paprastą, lengvai skaitomą kodą.