Corey Chivers
March 22, 2013
640

# Getting started with R - QCBS

March 22, 2013

## Transcript

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

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

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

4. #02Rhero

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.

7. Tables
Data
Graphs
Statistics
Understanding
Sigmaplot
Excel
SAS

8. Tables
Data
Graphs
Statistics
Understanding

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.
when the going gets tough!

11. Challenge 1
Open R-Studio

12. The Console

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

17. Hey look, a
suggestion!

18. • Some plots and graphs
that can be made using R
• images and other
• 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
question into an object with a name of

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

32. Some common functions

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