Programmeren in R: de basis: Controlestructuren
Begrensde herhaling
Met een while
instructie kun je ook een begrensde herhaling, waarbij op voorhand het aantal herhalingen vast staat, implementeren. Onderstaand voorbeeld laat zien hoe je de som van de eerste 10 natuurlijke getallen kunt berekenen.
> som <- 0 > n <- 1 > while (n < 11) { + som <- som + n + n <- n + 1 + } > cat("som van 1 t/m 10 is gelijk aan", som, "\n") som van 1 t/m 10 is gelijk aan 55
Maar de for
instructie is gebruikelijker om een begrensde herhaling in te doen. Bovenstaand voorbeeld gaat dan als volgt:
> som <- 0 > for (i in 1:10) { som <- som + i } > cat("som van 1 tot 10 is gelijk aan", som, "\n") som van 1 tot 10 is gelijk aan 55
De algemene vorm van een door telling begrensde herhaling (for
instructie via een vector
object) staat hieronder; lees de toelichting.
Door telling begrensde herhaling
for (telvariabele in seq(from = start, to = einde, by = stapgrootte)) {
ingesprongen instructies
}
Je kunt herhalingen ook genest toepassen. In onderstaand voorbeeld staat een programma om een zogeheten Vandermonde matrix te construeren.
Voorbeeld van geneste herhaling
> M <- matrix(0, nrow = n, ncol = n) # initialiseeer een nxn nulmatrix > for (i in 1:n) { + for (j in 1:n) { + M[i,j] <- i^(j-1) # definieer matrixelement + } + } > M [,1] [,2] [,3] [,4] [1,] 1 1 1 1 [2,] 1 2 4 8 [3,] 1 3 9 27 [4,] 1 4 16 64
Ontgrendel volledige toegang