Download presentation

Presentation is loading. Please wait.

Published byColby Gordon Modified over 2 years ago

1
R for Macroecology Functions and plotting

2
A few words on for for( i in 1:10 )

3
A few words on for for( i in 1:10 ) 12345678910

4
A few words on for for( i in 1:10 ) 12345678910 i = 1 Do any number of functions with i print(i) x = sqrt(i)

5
A few words on for for( i in 1:10 ) 12345678910 i = 2 Do any number of functions with i print(i) x = sqrt(i)

6
A few words on for for( i in 1:10 ) 12345678910 i = 10 Do any number of functions with i print(i) x = sqrt(i)

7
i as an Index X = c(17,3,-1,10,9) Y = NULL for(i in 1:length(X)) { if(X[i] < 12) { Y[i] = X[i] + 5 } 173109 X =

8
i as an Index X = c(17,3,-1,10,9) Y = NULL for(i in 1:length(X)) { if(X[i] < 12) { Y[i] = X[i] + 5 } 173109 X =Y =

9
i as an Index X = c(17,3,-1,10,9) Y = NULL for(i in 1:length(X)) { if(X[i] < 12) { Y[i] = X[i] + 5 } 173109 X =Y = 12345 i = 1 (so X[i] = 17)

10
i as an Index X = c(17,3,-1,10,9) Y = NULL for(i in 1:length(X)) { if(X[i] < 12) { Y[i] = X[i] + 5 } 173109 X =Y = 12345 i = 1 (so X[i] = 17) F

11
i as an Index X = c(17,3,-1,10,9) Y = NULL for(i in 1:length(X)) { if(X[i] < 12) { Y[i] = X[i] + 5 } 173109 X =Y = 12345 i = 2 (so X[i] = 3)

12
i as an Index X = c(17,3,-1,10,9) Y = NULL for(i in 1:length(X)) { if(X[i] < 12) { Y[i] = X[i] + 5 } 173109 X =Y = 12345 i = 2 (so X[i] = 3) T

13
i as an Index X = c(17,3,-1,10,9) Y = NULL for(i in 1:length(X)) { if(X[i] < 12) { Y[i] = X[i] + 5 } 173109 X =Y = NA 12345 i = 2 (so X[i] = 3) 8

14
i as an Index X = c(17,3,-1,10,9) Y = NULL for(i in 1:length(X)) { if(X[i] < 12) { Y[i] = X[i] + 5 } 173109 X =Y = NA 12345 841514

15
i as an Index X = c(17,3,-1,10,9) Y = NULL for(i in 1:length(X)) { if(X[i] < 12) { Y[i] = X[i] + 5 } 173109 X =Y = NA 12345 841514 This vector (created by the for) indexes vectors X and Y

16
2-dimension equivalent X = matrix(1:6,ncol = 2,nrow = 3) Y = matrix(NA,ncol = 2,nrow = 3) for(i in 1:nrow(X)) { for(j in 1:ncol(X)) { Y[i,j] = X[i,j]^2 } 14 X = 25 36 NA Y = NA

17
2-dimension equivalent X = matrix(1:6,ncol = 2,nrow = 3) Y = matrix(NA,ncol = 2,nrow = 3) for(i in 1:nrow(X)) { for(j in 1:ncol(X)) { Y[i,j] = X[i,j]^2 } 14 X = 25 36 NA Y = NA ijij

18
2-dimension equivalent X = matrix(1:6,ncol = 2,nrow = 3) Y = matrix(NA,ncol = 2,nrow = 3) for(i in 1:nrow(X)) { for(j in 1:ncol(X)) { Y[i,j] = X[i,j]^2 } 14 X = 25 36 1NA Y = NA ijij 1 1

19
2-dimension equivalent X = matrix(1:6,ncol = 2,nrow = 3) Y = matrix(NA,ncol = 2,nrow = 3) for(i in 1:nrow(X)) { for(j in 1:ncol(X)) { Y[i,j] = X[i,j]^2 } 14 X = 25 36 116 Y = 4NA ijij 112112 121121

20
2-dimension equivalent X = matrix(1:6,ncol = 2,nrow = 3) Y = matrix(NA,ncol = 2,nrow = 3) for(i in 1:nrow(X)) { for(j in 1:ncol(X)) { Y[i,j] = X[i,j]^2 } 14 X = 25 36 116 Y = 425 936 ijij 112233112233 121212121212

21
Onward to today’s topics! Looking more at functions Plotting your data

22
Packages Sets of functions for a particular purpose We will explore some of these in detail install.packages() require(package.name) CRAN!

23
Function help Syntax Arguments Return

24
Function help

25
Writing your own functions Why bother? We often have blocks of code that we want to execute many times, with small changes Repetitive code is hard to read and likely to contain errors Think about what variables the function should work on, and what the function should produce myFunction = function(argument, argument...) { stuff more stuff return(anObject) }

26
Defining a function SayHi = function(input) { print(paste(“Hello”,input)) } SayHi(“Brody”)

27
Defining a function SayHi = function(input) { print(paste(“Hello”,input)) } SayHi(“Brody”) [1] “Hello Brody”

28
Defining a function SayHi = function(input) { print(paste(“Hello”,input)) } SayHi(“Brody”) [1] “Hello Brody” SayHi() Error in paste("Hello", input) : argument "input" is missing, with no default

29
Defining a function SayHi = function(input) { print(paste(“Hello”,input)) } SayHi(“Brody”) [1] “Hello Brody” SayHi() Error in paste("Hello", input) : argument "input" is missing, with no default Functions (usually) only have access to the variables given as arguments! input = “Bob” SayHi() Error in paste("Hello", input) : argument "input" is missing, with no default

30
Defining a function with defaults SayHi2 = function(input = “Sven”) { print(paste(“Hello”,input)) } SayHi2(“Brody”) [1] “Hello Brody” SayHi2() [1] “Hello Sven”

31
Things to remember about functions Use them whenever you have chunks of repeated code Remember to use return() to have the function return the desired object Not always necessary, sometimes you might just want a function to plot something, or print something Local/Global Functions only have access to variables passed as arguments Changes to variables to and new variables defined within the function are not available outside the function

32
A break to try things out Vector Function Number Value

33
Plotting For creating a plot plot() hist() For drawing on a plot points() segments() polygons() For controlling how plots look par() Make a new plotting window x11()

34
plot() x = 1:10 y = 10:1 plot(x,y)

35
plot() x = 1:10 y = 10:1 plot(x,y,main = “A plot”,xlab = “Temperature”, ylab = “Pirates”)

36
type = “l”“b””h” “o”“s”

37
type = “l”“b””h” “o”“s”

38
Plotting size and characters cex = 2 or cex = 3

39
Plotting size and characters pch = 10, cex = 3 pch = A, cex = 3pch = A, cex = x

40
Color By name “blue” or “dark grey”... By function grey() rainbow() rgb()

41
Color x = rep(1:10,10) y = rep(1:10,each=10) plot(x,y)

42
Color x = rep(1:10,10) y = rep(1:10,each=10) plot(x,y,pch = 15,cex = 2)

43
Color x = rep(1:10,10) y = rep(1:10,each=10) plot(x,y,pch = 15,cex = 2,col = “dark green”)

44
Color x = rep(1:10,10) y = rep(1:10,each=10) plot(x,y,pch = 15,cex = 2,col = rgb(0.8,0.1,0.2))

45
Color x = rep(1:10,10) y = rep(1:10,each=10) plot(x,y,pch = 15,cex = 2,col = rgb(seq(0,1,by = 0.01),0.1,0.2))

46
Drawing on plots points(x,y) adds points to existing plots (with very similar options to plot() ) segments(x0,y0,x1,y1) draws lines from points to other points polygons()

47
The wonderful world of par() 70 different options to control your plots!

48
Plotting to a file pdf(), bmp() dev.off()

49
Some examples All created entirely within R!

50
One last fun thing Scatterplots of massive data can be hard to read 170265 data points

51
2-d histogram with hexagonal bins Now the structure in the data is clearer

52
Hexagonal 2-d histograms hexbin() function in the package hexbin Additional powerful plotting tools are found in the grid package, which provides a whole different approach to plotting

Similar presentations

© 2017 SlidePlayer.com Inc.

All rights reserved.

Ads by Google