######################################## # # Script: 15 February 2011 (20110215.R) # ######################################## # Today: # ** Creating functions (in R) # ** Categorical vs Categorical # . Two-Way # Next time: # ** Statistical effect # . Start of level of effect # ** Observed distribution vs. Expected distribution # . One-Way # Writing functions # Step 1: What should the function give to me? # Step 2: What information do I need to provide the function? # Step 3: How do I get from 1 to 2? # Step 4: Algorithm # Step 5: Program # Step 6: Test, Test, Test, Test, Test, Test! ################################################## # # Theme: The Robust measure (R) # # Example 1: Arithmetic Mean mean.a <- function(var) { n <- length(var) m <- sum(var)/n return(m) } # Example 2: Harmonic Mean mean.h <- function(var) { n <- length(var) m <- n/sum(1/var) return(m) } # Example 3: Geometric Mean mean.g <- function(var) { n <- length(var) m <- exp( 1/n * sum( log(var) ) ) return(m) } # Example 4: Median med <- function(var) { n <- length(var) var <- sort(var) if( n/2 == floor(n/2) ) { m <- 0.5*( var[n/2] + var[n/2+1]) } else { m <- var[ (n+1)/2 ] } return(m) }