# David Kauchak # 11/20/2011 # # Some example R functions # 1 mystery1 <- function(num){ count <- 0 current <- 1 while(count < num){ if( mystery2(current) ){ print(current) count <- count + 1 } current <- current + 1 } } # 2 # though this does have a small bug in it... mystery2 <- function(num){ for( i in 2:sqrt(num) ){ if( num %% i == 0 ){ return(FALSE) } } return(TRUE) } # 3 mystery3 <- function(num){ in_circle <- 0 for( i in 1:num){ x <- runif(1, 0, 1) y <- runif(1, 0, 1) dist <- sqrt(x^2 + y^2) if( dist < 1 ){ in_circle <- in_circle + 1 } } return(4 * in_circle/num) } # same thing, but a bit faster mystery3b <- function(num){ x <- runif(num, 0, 1) y <- runif(num, 0, 1) distances <- sqrt(x^2 + y^2) return(4 * sum(distances < 1)/num) } # 4 # assume the data in the file is numbers mystery4 <- function(file){ data <- scan(file) print(paste("Average:", mean(data))) print(paste("Max:", max(data))) print(paste("Non-zero:", sum(data != 0))) }