Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Getting started with R - QCBS

5779dc3bf8c8a0c9dadb7ff95c67e9e3?s=47 Corey Chivers
March 22, 2013
570

Getting started with R - QCBS

5779dc3bf8c8a0c9dadb7ff95c67e9e3?s=128

Corey Chivers

March 22, 2013
Tweet

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. None
  8. Tables Data Graphs Statistics Understanding Sigmaplot Excel SAS

  9. Tables Data Graphs Statistics Understanding

  10. 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.
  11. Challenges Throughout the workshop, you will be presented with a

    series of challenges. Collaborate with your neighbour when the going gets tough!
  12. Challenge 1 Open R-Studio

  13. The Console

  14. 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:
  15. [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).
  16. 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
  17. R command-line tip • Use the ▲▼ arrow keys to

    re-produce previous commands • This lets you scroll through your command history
  18. Hey look, a suggestion!

  19. • 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))
  20. 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
  21. 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
  22. Challenge Put your answer to the skill testing question into

    an object with a name of your choice.
  23. 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
  24. 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:
  25. 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:
  26. 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.
  27. R command-line tip •Use the Tab key to auto- complete

    •This helps you avoid spelling errors and speeds up command entering.
  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 )
  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
  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
  31. 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
  32. 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. Some common functions

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

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

    Detailed information about the function Any argument with an = has a default value
  37. ...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.
  38. 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.
  39. 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
  40. •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
  41. 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
  42. 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’?
  43. 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/
  44. The library() function loads the package, making its functions accessible.

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