Corey Chivers
March 22, 2013
660

# Getting started with R - QCBS

March 22, 2013

## Transcript

1. ### Introduction to R Corey Chivers Department of Biology, McGill University

zerotorhero.wordpress.com

3. ### All of the slides, scripts, and data files we will

be using are available at: zerotorhero.wordpress.com

5. ### Outline 1) Getting started R command line Assingment, Data &

vectors Using functions Getting help 2) Data and projects in R- Studio Creating an R project Organizing/cleaning data Importing/exporting Data 3) Pizza! 4) Intro to Plotting Reproducible plots Basic plotting Building complex plots by small steps 5) A la Carte (time permitting): Programming (loops, conditionals & functions) Intro to Simulation Q & A
6. ### Why R ? • It's Free .. • “as in

free beer” • “as in free speech” • use it for any purpose. • give copies to your friends & neighbours. • improve it and release improvements publicly.

9. ### Why does R seem so hard to learn? • R

is command-driven • R will not tell you what to do, nor guide you through the steps of an analysis or method. • R will do all the calculations for you, and it will do exactly what you tell it (not necessarily what you want). • R has the flexibility and power to do exactly what you want, exactly how you want it done.
10. ### Challenges Throughout the workshop, you will be presented with a

series of challenges. Collaborate with your neighbour when the going gets tough!

13. ### Output (results) Input (commands) The R Console Text in the

R console typically looks like this: > input [1] output I'll represent it like this:
14. ### [1] 2 1 + 1 R is a calculator 2

* 2 [1] 4 2 ^ 3 [1] 8 10 - 1 [1] 9 8 / 2 [1] 4 sqrt(9) [1] 3 •Commands are evaluated, and the result is returned (sometimes invisibly).
15. ### Challenge Use R to answer the following skill testing question:

2 + 16 x 24 – 56 / (2+1) – 457 Bonus – calculate: The area of a circle with radius 5cm? The hypotenuse of triangle ABC with: • Angle ABC=90⁰ , Angle ACB=45⁰ • Side AB=5cm
16. ### R command-line tip • Use the ▲▼ arrow keys to

re-produce previous commands • This lets you scroll through your command history

18. ### • Some plots and graphs that can be made using

R • images and other graphics made using R • a demonstration of linear modelling & GLMs • a list of available demos demo(graphics) demo(image) demo(lm.glm) demo() R is a show-off For even more demos, use: demo(package = .packages(all.available = TRUE))
19. ### Objects You can store values as named objects using the

assignment operator: <- assign the value on the right to the name on the left A <- 10 B <- 10*10 A_log <- log(A) B.seq <- 1:B Object names can be be (almost) anything you choose. They can include: Letters a-z, A-Z (case sensitive) Numbers 0-9 Periods . Underscores _ Should begin with a letter
20. ### Retrieving the values When a variable name is evaluated, it

returns the stored value. A [1] 10 B [1] 100 A_log [1] 2.302585 x [1] 3 B.seq [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 [22] 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 [43] 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 [64] 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 [85] 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
21. ### Challenge Put your answer to the skill testing question into

an object with a name of your choice.
22. ### Vectors • The most basic kind of object in R

is a vector • Think of a vector as a list of related values (data) • A single value is an 'atomic vector' (vector of length 1) [1] 2 1:10 index (item number) Value (result) [1] 1 2 3 4 5 6 7 8 9 10
23. ### Vectors my_fav_nums<-c(1, 4, 10, 444, 42) plot(1:5, my_fav_nums) my_fav_nums[3] [1]

10 • You can make a vector using the c() command: • You can plot vectors: • You can access a part of a vector by its index:
24. ### Vectors my_fav_nums+20 my_fav_nums/2 +1 sqrt(my_fav_nums) mean(my_fav_nums) sum(my_fav_nums) • You can

use vectors in calculations:
25. ### Challenge What is the sum of the square of all

of the integers between 1 and 100? Hint: remember counting from x to y can be done with x:y.
26. ### R command-line tip •Use the Tab key to auto- complete

•This helps you avoid spelling errors and speeds up command entering.
27. ### Functions • A functions takes in arguments and returns an

object • To use a function (call), the command must be structured properly, following the "grammar rules" of the R language (syntax) log( 8 , base = 2 )
28. ### Functions • A functions takes in arguments and returns an

object • To use a function (call), the command must be structured properly, following the "grammar rules" of the R language (syntax) log( 8 , base = 2 ) Function name
29. ### Functions • A functions takes in arguments and returns an

object • To use a function (call), the command must be structured properly, following the "grammar rules" of the R language (syntax) log( 8 , base = 2 ) Function name No space Parentheses
30. ### Functions • A functions takes in arguments and returns an

object • To use a function (call), the command must be structured properly, following the "grammar rules" of the R language (syntax) log( 8 , base = 2 ) Function name No space Parentheses Argument 2 Arguments are separated by a Comma Argument 1
31. ### Arguments • Arguments are the values passed to a function

when it is called • Arguments are values and instructions the function needs to do its thing x<-1:10 y<-sin(x) plot(x,y,type=‘l’) Example

33. ### How do I use a new function? What arguments will

it take? Use ?function ! What does it do? For example: ?seq
34. ### Function name package Arguments you can pass to the function

Detailed information about the function Any argument with an = has a default value
35. ### ...details Example use cases. Copy and past to try it

out. ...details The value which will be returned You can also use example(seq) to run all of the code in this section.
36. ### Challenge 1) Create an unsorted vector of your favourite numbers.

2) Find out how to sort it using ?sort. 3) Sort your vector in forward and in reverse order. 4) Put your sorted vectors into new objects.
37. ### load a built-in data file peek at first few rows

structure of the object names of items in the object attributes of the object summary statistics plot of all variable combinations data(CO2) head(CO2) str(CO2) names(CO2) attributes(CO2) summary(CO2) plot(CO2) Data Frames
38. ### •You can refer to parts of a data frame object

by its index or name (if it has one) CO2\$Treatment Indexing CO2[1:6,3] Object name Rows (dim. 1) columns (dim. 2) Object name Column operator Column name
39. ### Indexing names(CO2) CO2\$Treatment CO2[,3] CO2[3,] CO2[1:6,] CO2[c(1,2,3,4,5,6),3] CO2\$Treatment[1:6] CO2[CO2\$conc>100,] CO2[CO2\$Treatment=="chilled",]

CO2[sample(nrow(CO2), 10),] available named columns "Treatment" column all rows, column 3 row 3, all columns rows 1-6, all columns rows 1-6, column 3 elements 1-6 of Treatment rows where conc > 100 rows where Treatment == “chilled" 10 random rows
40. ### Challenge 1) What is the mean uptake of all plants

in the non-chilled treatment? 2) What is the variance in uptake for plant ‘Mc3’?
41. ### 43 Installing packages • In addition to all of the

base functions in R, you can install additional packages to do specialized statistics and plotting. • Currently, the CRAN package repository features 4276 available packages. • http://cran.r-project.org/web/packages/
42. ### The library() function loads the package, making its functions accessible.

install.packages(‘ggplot2’) Installing packages library(ggplot2)