Loops With Replicate

Want to learn more? I recommend working through: R for Data Science, R Cookbook, and R Graphics Cookbook.

Replicate applies an action individually to every element of a vector

```# Run runif(1) five times
replicate(5, runif(1))
```
```[1] 0.2769136 0.8304662 0.5407557 0.8074367 0.2867881
```

The below more complicated example, we create a function that first chooses a method of transportation and then based on what method of transport was selection, calculates a travel time based on that method of transport (hence the switch function). rnorm and rlnorm are simply what the example uses to create fake travel time data

```time_for_commute <- function() {
#Choose a mode of transport for the day
mode_of_transport <- sample(
c("car", "bus", "train", "bike"),
size = 1,
prob = c(0.1, 0.2, 0.3, 0.4)
)
#Find the time to travel, depending upon mode of transport
time <- switch(
mode_of_transport,
car   = rlnorm(1, log(30), 0.5),
bus   = rlnorm(1, log(40), 0.5),
train = rnorm(1, 30, 10),
bike  = rnorm(1, 60, 5)
)
names(time) <- mode_of_transport
time
}
```
```# Run the function
time_for_commute()
```
```    bike
60.55362
```
```# Run the function five times
replicate(5, time_for_commute())
```
```    bike      bus    train    train     bike
65.26913 71.15877 23.13382 29.23679 58.59026
```