Beheers de for-lus om complexe berekeningen en andere repetitieve bewerkingen te stroomlijnen.

Lussen zijn een basisstructuur in de programmering die een codeblok neemt en herhaaldelijk uitvoert. For-lussen zijn een van de soorten lussen die bijna alle talen bevatten. R's for loops zijn een integraal onderdeel van het analyseren van gegevens.

Ze dienen verschillende doeleinden, van het formatteren van uitvoer tot het uitvoeren van berekeningen op grote datasets. Het gebruik van for-lussen in R maakt data-analyse eenvoudiger uit te voeren.

R's Basic voor Loop

De for-loop van de R-taal werkt op dezelfde manier als de standaard for loops gevonden in Go en de meeste andere programmeertalen. Gegeven een startpunt, zal het de code erin een bepaald aantal keren uitvoeren.

Een teller houdt de iteratie bij dat de lus momenteel bezig is, en je hebt er toegang toe via het bijbehorende codeblok. Lussen kunnen worden uitgevoerd voor een vast aantal iteraties of voor de totale lengte van een array, vector of lijst.

Vaste iteratielussen

Vaste iteratielussen in R hebben de volgende vorm:

voor (X in1:10) {
afdrukken (x)
}

De x in de lus is de variabele waarin de herhaling van de lus wordt opgeslagen.

Na het sleutelwoord "in" zijn de begin- en eindpunten van de lus. De lus begint zijn iterator bij het eerste nummer.

Elke keer dat de code in de lus wordt uitgevoerd, wordt gecontroleerd of de iterator gelijk is aan het getal achter de dubbele punt.

Als dit het geval is, wordt de uitvoering van de code voortgezet na de lus. Als dit niet het geval is, wordt de iterator met 1 verhoogd en wordt het codeblok tussen haakjes opnieuw uitgevoerd.

Voor lussen op arrays, lijsten en vectoren

Net als een woordenboek doorlopen in Python, kunt u de juiste gegevensstructuren in R herhalen met behulp van de for-lus. U kunt elke herhaalde gegevensstructuur gebruiken na het sleutelwoord "in", in plaats van een vast begin- en eindpunt.

Door op deze manier een lus te maken, verandert het gedrag van de code. Hier zal de lus functioneren als een foreach-lus van talen zoals C#:

medewerkers "Ben", "Jane", "Suzi", "Jos", "Carol")

voor (X in medewerkers) {
afdrukken (x)
}

Nu, in plaats van dat x de huidige iteratie van de lus vasthoudt, zal het het object uit de array of lijst bevatten waarop de lus zich momenteel bevindt. Nadat elke lus is voltooid en er meer items in de lijst, array of vector staan, wordt x ingesteld op het volgende item. Als er niet meer items zijn, gaat de uitvoering verder met de code na de lus.

De c primitieve functie en voor lussen

Naast reeds ingevulde datastructuren kan R een nieuwe samenstellen in de declaratie van de for-lus. Gebruik hiervoor de functie c om meerdere elementen te combineren tot een nieuwe vector.

U kunt het bovenstaande voorbeeld vereenvoudigen met behulp van deze methode:

voor (X in C("Ben", "Jane", "Suzi", "Jos", "Carol")) {
afdrukken (x)
}

Merk op dat de uitvoer precies hetzelfde is als voorheen:

R's Jump-verklaringen

Met twee instructies kunt u loop-iteraties overslaan: break en next. Dit doen ze op verschillende manieren. Je moet ervoor zorgen dat je het verschil tussen de twee weet.

Het pauze-trefwoord

Wanneer een lus een break-instructie in zichzelf tegenkomt, wordt de lus onmiddellijk gesloten. Aangezien het programma de lus verlaat zodra het sleutelwoord break is bereikt, zal het geen van de resterende code opnieuw uitvoeren:

dagen "Maandag", "Dinsdag", "Woensdag", "Donderdag", "Vrijdag", "Zaterdag",
"Zondag")

voor (X in dagen) {
als (x == "Zaterdag") {
pauze
}

afdrukken (x)
}

De bovenstaande lus print alle weekdagen, maar geen van de weekenddagen.

Het volgende trefwoord

Het volgende trefwoord slaat ook een iteratie over, maar in tegenstelling tot break sluit next de lus niet onmiddellijk af. De lus die open blijft betekent dat eventuele aanvullende code binnen de huidige lus niet wordt uitgevoerd, maar dat de volgende iteratie doorgaat zoals gepland:

dagen "Maandag", "Dinsdag", "Woensdag", "Donderdag", "Vrijdag", "Zaterdag",
"Zondag")

voor (X in dagen) {
als (x == "Zaterdag") {
volgende
}

afdrukken (x)
}

Deze lus wordt elke weekdag en zondag uitgevoerd, maar wordt niet op zaterdag afgedrukt.

Voorbeeld voor lussen in R

Er is een grote verscheidenheid aan situaties waarin for-lussen nuttig zijn in R. Ze kunnen een geweldige manier zijn om repetitieve berekeningen uit te voeren, zoals het optellen van getallen om een ​​totaal te krijgen:

bestellingen 23.4, 699.8, 1042.0)
totaal 0.0

voor (volgorde in bestellingen) {
totaal }

kat("het totaal is $", totaal, "\N")

In dit voorbeeld wordt een ordertotaal van elke individuele order in een lijst opgeteld bij het totale totaal.

Als alternatief kan een for-lus u helpen om snel en gemakkelijk grote hoeveelheden goed opgemaakte gegevens uit te voeren:

dagtotalen 567.82, 364.72, 762.81, 354.99, 622.87)

voor (dag in1:lengte (dagtotalen)) {
kat("Dag #", dag, ": $", dagtotalen[dag],"\N")
dag 1
}

U kunt een for-lus gebruiken om elke dag van de week en de totale verkoop voor die specifieke dag af te drukken.

U kunt een for-lus gebruiken om resultaten te berekenen en deze beschikbaar te maken voor code buiten de for-lus, om een ​​verscheidenheid aan informatie te verkrijgen:

test_scores 67, 89, 72, 44)
score_totaal 0
num_tests 0

voor (scoren in testuitslagen) {
score_total num_tests 1
}

gemiddelde_score afdrukken (gemiddelde_score)

De bovenstaande lus berekent de gemiddelde score die studenten op een test hebben behaald.

Alles wat u moet weten over R's for Loops

Het is essentieel om te leren hoe je een bepaald aantal lussen moet uitvoeren of hoe je een dataset moet herhalen zonder een vaste lengte.

Of u nu herhaalde berekeningen op een array moet uitvoeren, elk item in een lijst moet afdrukken of een grote hoeveelheid gegevens in een leesbare vorm moet weergeven, R's for loop kan helpen.

Het begrijpen van de onderliggende principes achter for-loops is een waardevolle vaardigheid om in je arsenaal te hebben, en als je het onder de knie hebt, kun je eenvoudige, gemakkelijk leesbare code schrijven.