Using apply-family functions
Previously, we talked about using a for
loop to repeat evaluating an expression with an iterator on a vector or list. In practice, however, the for
loop is almost the last choice because an alternative way is much cleaner and easier to write and read when each iteration is independent of each other.
For example, the following code uses for
to create a list of three independent, normally distributed random vectors whose length is specified by vector len
:
len <- c(3, 4, 5) # first, create a list in the environment. x <- list() # then use `for` to generate the random vector for each length for (i in 1:3) { x[[i]] <- rnorm(len[i]) } x ## [[1]] ## [1] 1.4572245 0.1434679 -0.4228897 ## ## [[2]] ## [1] -1.4202269 -0.7162066 -1.6006179 -1.2985130 ## ## [[3]] ## [1] -0.6318412 1.6784430 0.1155478 0.2905479 -0.7363817
The preceding example is simple, but the code is quite redundant...