Bemästra for-slingan för att effektivisera komplexa beräkningar och andra repetitiva operationer.

Slingor är en grundläggande struktur inom programmering som tar ett kodblock och kör det upprepade gånger. För loopar är en av de typer av loopar som nästan alla språk innehåller. R för loopar är en integrerad del av att analysera data.

De tjänar en mängd olika syften, från att formatera utdata till att köra beräkningar på stora datamängder. Användningen av for loops i R gör dataanalys enklare att utföra.

R’s Basic för Loop

R-språket för loop fungerar på samma sätt som standarden för loopar som finns i Go och de flesta andra programmeringsspråk. Med en utgångspunkt kommer den att köra koden som finns i den ett givet antal gånger.

En räknare håller iterationen som slingan för närvarande är på, och du kan komma åt den från det tillhörande kodblocket. Slingor kan köras för ett fast antal iterationer eller för den totala längden av en array, vektor eller lista.

Fasta iterationsslingor

Fasta iterationsslingor i R har följande form:

instagram viewer
för (x i1:10) {
skriv ut (x)
}

X: et i slingan är variabeln som lagrar loop-iterationen.

Efter nyckelordet "in" finns start- och slutpunkterna för slingan. Slingan startar sin iterator vid det första numret.

Efter varje gång koden i slingan körs kommer den att kontrollera om iteratorn är lika med talet efter kolon.

Om så är fallet kommer kodexekveringen att fortsätta efter loopen. Om den inte är det kommer iteratorn att öka med 1 och kodblocket inom parentes kommer att köras igen.

För slingor på matriser, listor och vektorer

Precis som gå igenom en ordbok i Python, kan du iterera över lämpliga datastrukturer i R med hjälp av for-loopen. Du kan använda vilken itererbar datastruktur som helst efter nyckelordet "in", istället för en fast start- och slutpunkt.

Om du slingrar den här vägen ändras kodens beteende. Här kommer loopen att fungera som en foreach loop från språk som C#:

anställda "Ben", "Jane", "Suzi", "Josh", "Carol")

för (x i anställda) {
skriv ut (x)
}

Nu, istället för att x håller den aktuella iterationen av slingan, kommer den att hålla objektet från arrayen eller listan som slingan för närvarande är på. Efter att varje slinga är klar, om det finns fler objekt i listan, arrayen eller vektorn, ställs x till nästa objekt. Om det inte finns fler objekt fortsätter exekveringen med koden efter loopen.

Den c primitiva funktionen och för loopar

Förutom redan ifyllda datastrukturer kan R skapa en ny i deklarationen av for-slingan. För att göra det, använd c-funktionen för att kombinera flera element till en ny vektor.

Du kan förenkla exemplet ovan med den här metoden:

för (x i c("Ben", "Jane", "Suzi", "Josh", "Carol")) {
skriv ut (x)
}

Observera att utgången är precis densamma som tidigare:

R: s hopputtalanden

Två påståenden låter dig hoppa över loop-iterationer: break och nästa. De åstadkommer detta på olika sätt. Du bör se till att du vet skillnaden mellan de två.

Pausen Nyckelord

När en loop stöter på en break-sats i sig själv stänger den omedelbart loopen. Eftersom programmet lämnar loopen när det träffar nyckelordet break, kommer det inte att köra någon av den återstående koden igen:

dagar "måndag", "tisdag", "onsdag", "torsdag", "Fredag", "lördag",
"söndag")

för (x i dagar) {
om (x == "lördag") {
ha sönder
}

skriv ut (x)
}

Ovanstående loop kommer att skriva ut alla vardagar, men ingen av helgdagarna.

Nästa nyckelord

Nästa nyckelord hoppar också över en iteration, men till skillnad från break stänger nästa inte slingan omedelbart. Slingan som förblir öppen betyder att eventuell ytterligare kod inom den aktuella slingan inte kommer att köras, men nästa iteration fortsätter som planerat:

dagar "måndag", "tisdag", "onsdag", "torsdag", "Fredag", "lördag",
"söndag")

för (x i dagar) {
om (x == "lördag") {
Nästa
}

skriv ut (x)
}

Denna loop kommer att matas ut varje vardag och söndag, men den skrivs inte ut på lördag.

Exempel för loopar i R

Det finns en mängd olika situationer där loopar är användbara i R. De kan vara ett bra sätt att köra repetitiva beräkningar, som att lägga till siffror för att få en summa:

beställningar 23.4, 699.8, 1042.0)
totalt 0.0

för (beställa i beställningar) {
totalt }

katt("summan är $", totalt, "\n")

Detta exempel kommer att lägga till en ordersumma från varje enskild order i en lista till den totala summan.

Alternativt kan en for-loop hjälpa dig att snabbt och enkelt mata ut stora mängder välformaterad data:

day_totals 567.82, 364.72, 762.81, 354.99, 622.87)

för (dag i1:length (day_totals)) {
katt("Dag #", dag, ": $", day_totals[dag],"\n")
dag 1
}

Du kan använda en for-loop för att skriva ut varje veckodag och den totala försäljningen för just den dagen.

Du kan använda en for-loop för att beräkna resultat och göra dem tillgängliga för kod utanför for-loopen, för att få en mängd olika information:

test_scores 67, 89, 72, 44)
poäng_total 0
antal_test 0

för (Göra i provresultat) {
poäng_total num_tests 1
}

medelpoäng print (genomsnittlig_poäng)

Ovanstående loop kommer att beräkna den genomsnittliga poäng eleverna uppnått på ett test.

Allt du behöver veta om R's for Loops

Det är viktigt att lära sig hur man kör ett visst antal loopar eller itererar över en datamängd utan en fast längd.

Oavsett om du behöver utföra upprepade beräkningar på en array, skriva ut varje objekt i en lista eller visa en stor mängd data i en läsbar form, kan R's for loop hjälpa.

Att förstå de underliggande principerna bakom loopar är en värdefull färdighet att ha i din arsenal, och att bemästra det kan hjälpa dig att skriva enkel, lättläst kod.