ds %.% select(treatment, growth_rate) %.% mutate( growth_rate2 = growth_rate ^2 ) %.% filter( treatment == 't1' ) this week 1) loops (for, while, repeat) 2) Control structure (if else) 3) Loop families (apply, lapply, tapply) For Loops for (<index> in <vector>) { <statements> } the <vector> determines what value <index> will take in a loop The loop is performed length(vector) times On the nth iteration of the loop, var takes the value vector[n] indexis a completely new variable and not directly related to anything other variable Control structures if (<logical expression>) { <statements> } Sometimes, a block of code should be executed only if a certain condition is satisfied. In this case, the if structure can be used: Control structures You will often need to distinguish between several cases. In this case, you can extend the if structure by one or more else clauses if (<logical expression>) { <statements> } else { <statements> } while() and repeat() loops while (<logical expression>) { <statements> } repeat { <statements> if (<logical expression>) break } Another loop structure provided by R is the repeat structure. This structure repeats the commands in its body until a break statement is reached One of the simplest looping structures is the while loop. Here, the <statements> will be executed until <logical expression> is FALSE.
Be aware of infinite loops. apply Family apply Family http://adv-r.had.co.nz/Data-structures.html apply Family A B C ds = apply Family A B C ds = ds %.% mutate( D = mean(C) ) apply Family ds %.% mutate( D = mean(C) ) A B C ds = D apply(ds$C, 2, mean) ds$D <- apply(ds$C, 2, mean) apply(ds$C, 2, mean) ds$D <- apply(ds$C, 2, mean) ds %.% mutate( D = mean(C) ) apply Family A B C ds = D apply(ds, 2, mean) ds$D <- apply(ds, 2, mean) apply Family ds %.% mutate( D = mean(C) ) A B C ds = mean median max min length as.character as.numeric as.factors is.na
apply(ds$C, 2, mean) ds$D <- apply(ds$C, 2, mean) apply(ds, 2, mean) ds$D <- apply(ds, 2, mean) apply(ds, 1, mean) apply Family A B C ds = D 1 1 2 2 tapply(ds$C, ds$D, mean) apply Family A B C lst[[1]] = lst = A B C lst[[2]] = result <- lapply(lst, mean) result = result[[1]] = mean(lst[[1]]) result[[2]] = mean(lst[[2]]) apply Family A B C lst[[1]] = lst = A B C lst[[2]] = result = c(mean(lst[[1]], mean(lst[[2]]) result <- sapply(lst, mean) Lecture 6: Hands on Section 1) get Lecture6.R from github
- lots of data for todays hands on section will be simulated.