Mestre for-løkken for å strømlinjeforme komplekse beregninger og andre repeterende operasjoner.
Loops er en grunnleggende struktur i programmering som tar en blokk med kode og kjører den gjentatte ganger. For loops er en av typene looper som nesten alle språk inneholder. R-er for looper er en integrert del av analyse av data.
De tjener en rekke formål, fra formatering av utdata til å kjøre beregninger på store datasett. Bruken av for loops i R gjør dataanalyse enklere å utføre.
R’s Basic for Loop
R-språket for loop fungerer på samme måte som standarden for løkker funnet i Go og de fleste andre programmeringsspråk. Gitt et utgangspunkt, vil den kjøre koden som finnes i den et gitt antall ganger.
En teller holder iterasjonen som løkken er på, og du kan få tilgang til den fra den tilhørende kodeblokken. Sløyfer kan kjøre for et fast antall iterasjoner, eller for den totale lengden av en matrise, vektor eller liste.
Faste iterasjonsløkker
Faste iterasjonsløkker i R har følgende form:
til (x i1:10) {
skriv ut (x)
}
X-en i løkken er variabelen som skal lagre løkkeiterasjonen.
Etter nøkkelordet "in" er start- og sluttpunktene for løkken. Sløyfen vil starte sin iterator ved det første tallet.
Etter hver gang koden i loopen kjører, vil den sjekke om iteratoren er lik tallet etter kolon.
Hvis det er det, vil kjøring av kode fortsette etter løkken. Hvis den ikke er det, vil iteratoren øke med 1, og kodeblokken i parentes vil kjøre igjen.
For løkker på matriser, lister og vektorer
Akkurat som går gjennom en ordbok i Python, kan du iterere over passende datastrukturer i R ved å bruke for-løkken. Du kan bruke hvilken som helst gjentakelig datastruktur etter "in"-nøkkelordet, i stedet for et fast start- og sluttpunkt.
Å løkke denne veien vil endre kodens oppførsel. Her vil loopen fungere som en foreach loop fra språk som C#:
ansatte "Ben", "Jane", "Suzi", "Josh", "Carol")
til (x i ansatte) {
skriv ut (x)
}
Nå, i stedet for at x holder gjeldende iterasjon av løkken, vil den holde objektet fra matrisen eller listen som løkken er på. Etter at hver sløyfe er fullført, hvis det er flere elementer i listen, matrisen eller vektoren, vil x bli satt til neste element. Hvis det ikke er flere elementer, vil kjøringen fortsette med koden etter løkken.
c Primitiv funksjon og for løkker
I tillegg til allerede fylte datastrukturer, kan R komponere en ny i deklarasjonen av for-løkken. For å gjøre det, bruk c-funksjonen til å kombinere flere elementer til en ny vektor.
Du kan forenkle eksemplet ovenfor ved å bruke denne metoden:
til (x i c("Ben", "Jane", "Suzi", "Josh", "Carol")) {
skriv ut (x)
}
Merk at utgangen er akkurat den samme som før:
Rs hopputtalelser
To utsagn lar deg hoppe over loop-iterasjoner: break og next. De oppnår dette på forskjellige måter. Du bør sørge for at du vet forskjellen mellom de to.
Pausen Nøkkelord
Når en sløyfe møter en break-setning i seg selv, lukker den sløyfen umiddelbart. Siden programmet går ut av loopen når det treffer nøkkelordet break, vil det ikke kjøre noen av den gjenværende koden igjen:
dager "Mandag", "Tirsdag", "Onsdag", "Torsdag", "Fredag", "Lørdag",
"Søndag")til (x i dager) {
hvis (x == "Lørdag") {
gå i stykker
}
skriv ut (x)
}
Sløyfen ovenfor vil skrive ut alle ukedagene, men ingen av helgedagene.
Det neste nøkkelordet
Det neste nøkkelordet hopper også over en iterasjon, men i motsetning til pause, lukker ikke neste sløyfen umiddelbart. Løkken som forblir åpen betyr at eventuell tilleggskode i gjeldende løkke ikke vil kjøre, men neste iterasjon vil fortsette som planlagt:
dager "Mandag", "Tirsdag", "Onsdag", "Torsdag", "Fredag", "Lørdag",
"Søndag")til (x i dager) {
hvis (x == "Lørdag") {
neste
}
skriv ut (x)
}
Denne sløyfen sendes ut hver ukedag og søndag, men den skrives ikke ut lørdag.
Eksempel på løkker i R
Det er en lang rekke situasjoner der for loops er nyttige i R. De kan være en fin måte å kjøre repeterende beregninger på, for eksempel å legge til tall for å få en total:
bestillinger 23.4, 699.8, 1042.0)
totalt 0.0til (rekkefølge i bestillinger) {
totalt }
katt("totalen er $", Total, "\n")
Dette eksemplet vil legge til en ordresum fra hver enkelt ordre i en liste til totalsummen.
Alternativt kan en for loop hjelpe deg raskt og enkelt å sende ut store mengder godt formaterte data:
dag_totaler 567.82, 364.72, 762.81, 354.99, 622.87)
til (dag i1:length (day_totals)) {
katt("Dag #", dag, ": $", dag_totaler[dag],"\n")
dag 1
}
Du kan bruke en for-løkke for å skrive ut hver dag i uken og det totale salget for den aktuelle dagen.
Du kan bruke en for-løkke til å beregne resultater og gjøre dem tilgjengelige for kode utenfor for-løkken, for å få en rekke informasjon:
test_scores 67, 89, 72, 44)
score_total 0
antall_tester 0til (score i prøveresultater) {
score_total num_tests 1
}
gjennomsnittsscore print (gjennomsnittlig_score)
Løkken ovenfor vil beregne gjennomsnittlig poengsum elevene oppnådde på en test.
Alt du trenger å vite om R's for Loops
Det er viktig å lære å kjøre et bestemt antall løkker eller iterere over et datasett uten en fast lengde.
Enten du trenger å utføre gjentatte beregninger på en matrise, skrive ut hvert element i en liste eller vise en stor gruppe data i en lesbar form, kan R's for loop hjelpe.
Å forstå de underliggende prinsippene bak for loops er en verdifull ferdighet å ha i arsenalet ditt, og å mestre det kan hjelpe deg med å skrive enkel, lettlest kode.