Slide 1

Slide 1 text

Introduction to R Corey Chivers Department of Biology, McGill University zerotorhero.wordpress.com

Slide 2

Slide 2 text

R U Keen? Get started with: http://www.codeschool.com/courses/try-r

Slide 3

Slide 3 text

All of the slides, scripts, and data files we will be using are available at: zerotorhero.wordpress.com

Slide 4

Slide 4 text

#02Rhero

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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.

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

Tables Data Graphs Statistics Understanding Sigmaplot Excel SAS

Slide 9

Slide 9 text

Tables Data Graphs Statistics Understanding

Slide 10

Slide 10 text

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.

Slide 11

Slide 11 text

Challenges Throughout the workshop, you will be presented with a series of challenges. Collaborate with your neighbour when the going gets tough!

Slide 12

Slide 12 text

Challenge 1 Open R-Studio

Slide 13

Slide 13 text

The Console

Slide 14

Slide 14 text

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:

Slide 15

Slide 15 text

[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).

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

R command-line tip • Use the ▲▼ arrow keys to re-produce previous commands • This lets you scroll through your command history

Slide 18

Slide 18 text

Hey look, a suggestion!

Slide 19

Slide 19 text

• 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))

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

Challenge Put your answer to the skill testing question into an object with a name of your choice.

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

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:

Slide 25

Slide 25 text

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:

Slide 26

Slide 26 text

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.

Slide 27

Slide 27 text

R command-line tip •Use the Tab key to auto- complete •This helps you avoid spelling errors and speeds up command entering.

Slide 28

Slide 28 text

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 )

Slide 29

Slide 29 text

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

Slide 30

Slide 30 text

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

Slide 31

Slide 31 text

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

Slide 32

Slide 32 text

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

Slide 33

Slide 33 text

Some common functions

Slide 34

Slide 34 text

How do I use a new function? What arguments will it take? Use ?function ! What does it do? For example: ?seq

Slide 35

Slide 35 text

No content

Slide 36

Slide 36 text

Function name package Arguments you can pass to the function Detailed information about the function Any argument with an = has a default value

Slide 37

Slide 37 text

...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.

Slide 38

Slide 38 text

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.

Slide 39

Slide 39 text

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

Slide 40

Slide 40 text

•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

Slide 41

Slide 41 text

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

Slide 42

Slide 42 text

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’?

Slide 43

Slide 43 text

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/

Slide 44

Slide 44 text

The library() function loads the package, making its functions accessible. install.packages(‘ggplot2’) Installing packages library(ggplot2)

Slide 45

Slide 45 text

No content