Presentation is loading. Please wait.

Presentation is loading. Please wait.

R for Macroecology Functions and plotting. A few words on for  for( i in 1:10 )

Similar presentations


Presentation on theme: "R for Macroecology Functions and plotting. A few words on for  for( i in 1:10 )"— Presentation transcript:

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


Download ppt "R for Macroecology Functions and plotting. A few words on for  for( i in 1:10 )"

Similar presentations


Ads by Google