I've got the following code in R:
func.time <- function(n){
times <- c()
for(i in 1:n){
r <- 1 #x is the room the mouse is in
X <- 0 #time, starting at 0
while(r != 5){
if(r == 1){
    r <- sample(c(2,3),1) }
else if(r == 2){
    r <- sample(c(1,3), 1) }
else if(r == 3){
    r <- sample(c(1,2,4,5), 1) }
else if (r == 4){
    r <- sample(c(3,5), 1) }
 X <- X + 1
 }
 times <- c(X, times)
 }
 mean(times)
 }
 func.time(10000)
It works fine, but I've been told that using switch() can speed it up seeing as I've got so many if else statements but I can't seem to get it to work, any help is appreciated in advance.
Edit I've tried this:
func.time <- function(n) {
    times <- c() 
    for(i in 1:n) {
        r <- 1 #x is the room the mouse is in 
        X <- 0 #time, starting at 0 
        while(r != 5) { 
            switch(r, "1" = sample(c(2,3), 1),
                         "2" = sample(c(1,3), 1),
                         "3" = sample(c(1,2,4,5), 1),
                         "4" = sample(c(3,5))) 
            X <- X + 1 
        } 
        times <- c(X, times) 
    } 
    mean(times) 
} 
func.time(10000)
But it was a basic attempt, I'm not sure I've understood the switch() method properly.
 
     
     
    