{ "cells": [ { "cell_type": "code", "execution_count": 19, "metadata": { "collapsed": false }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "Loading tidyverse: ggplot2\n", "Loading tidyverse: tibble\n", "Loading tidyverse: tidyr\n", "Loading tidyverse: readr\n", "Loading tidyverse: purrr\n", "Loading tidyverse: dplyr\n", "Conflicts with tidy packages ---------------------------------------------------\n", "filter(): dplyr, stats\n", "lag(): dplyr, stats\n" ] } ], "source": [ "library(tidyverse)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Introduction to R\n", "\n", "## R as simple calculator" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "245" ], "text/latex": [ "245" ], "text/markdown": [ "245" ], "text/plain": [ "[1] 245" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "2 + 3^5 " ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "2" ], "text/latex": [ "2" ], "text/markdown": [ "2" ], "text/plain": [ "[1] 2" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "7 %/% 3" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "1" ], "text/latex": [ "1" ], "text/markdown": [ "1" ], "text/plain": [ "[1] 1" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "sin(0.5*pi)" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "1230" ], "text/latex": [ "1230" ], "text/markdown": [ "1230" ], "text/plain": [ "[1] 1230" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "1.23e3" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Printing results\n", "\n", "By default, the result on the last line is displayed in the Jupyter notebook. To see other lines, use the `print` function." ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[1] 24\n", "[1] FALSE\n" ] }, { "data": { "text/html": [ "TRUE" ], "text/latex": [ "TRUE" ], "text/markdown": [ "TRUE" ], "text/plain": [ "[1] TRUE" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "print(1 * 2 * 3 *4)\n", "print(11 %% 3 == 1)\n", "10 > 1" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Getting help\n", "\n", "Type something and hit the tab key - this will either complete the R command for you (if unique) or present a list of opitons.\n", "\n", "Use ?topic to get a description of `topic`, or more verbosely, you can also use `help(topic)`. " ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "collapsed": false }, "outputs": [], "source": [ "?seq" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Use example to see usage examples." ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "seq> seq(0, 1, length.out = 11)\n", " [1] 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0\n", "\n", "seq> seq(stats::rnorm(20)) # effectively 'along'\n", " [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20\n", "\n", "seq> seq(1, 9, by = 2) # matches 'end'\n", "[1] 1 3 5 7 9\n", "\n", "seq> seq(1, 9, by = pi) # stays below 'end'\n", "[1] 1.000000 4.141593 7.283185\n", "\n", "seq> seq(1, 6, by = 3)\n", "[1] 1 4\n", "\n", "seq> seq(1.575, 5.125, by = 0.05)\n", " [1] 1.575 1.625 1.675 1.725 1.775 1.825 1.875 1.925 1.975 2.025 2.075 2.125\n", "[13] 2.175 2.225 2.275 2.325 2.375 2.425 2.475 2.525 2.575 2.625 2.675 2.725\n", "[25] 2.775 2.825 2.875 2.925 2.975 3.025 3.075 3.125 3.175 3.225 3.275 3.325\n", "[37] 3.375 3.425 3.475 3.525 3.575 3.625 3.675 3.725 3.775 3.825 3.875 3.925\n", "[49] 3.975 4.025 4.075 4.125 4.175 4.225 4.275 4.325 4.375 4.425 4.475 4.525\n", "[61] 4.575 4.625 4.675 4.725 4.775 4.825 4.875 4.925 4.975 5.025 5.075 5.125\n", "\n", "seq> seq(17) # same as 1:17, or even better seq_len(17)\n", " [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17\n" ] } ], "source": [ "example(seq)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To search for all functions with the phrase `topic`, use `apropos(topic)`." ] }, { "cell_type": "code", "execution_count": 37, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
    \n", "\t
  1. 'full_seq'
  2. \n", "\t
  3. 'seq'
  4. \n", "\t
  5. 'seq_along'
  6. \n", "\t
  7. 'seq_len'
  8. \n", "\t
  9. 'seq.Date'
  10. \n", "\t
  11. 'seq.default'
  12. \n", "\t
  13. 'seq.int'
  14. \n", "\t
  15. 'seq.POSIXt'
  16. \n", "\t
  17. 'sequence'
  18. \n", "
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 'full\\_seq'\n", "\\item 'seq'\n", "\\item 'seq\\_along'\n", "\\item 'seq\\_len'\n", "\\item 'seq.Date'\n", "\\item 'seq.default'\n", "\\item 'seq.int'\n", "\\item 'seq.POSIXt'\n", "\\item 'sequence'\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 'full_seq'\n", "2. 'seq'\n", "3. 'seq_along'\n", "4. 'seq_len'\n", "5. 'seq.Date'\n", "6. 'seq.default'\n", "7. 'seq.int'\n", "8. 'seq.POSIXt'\n", "9. 'sequence'\n", "\n", "\n" ], "text/plain": [ "[1] \"full_seq\" \"seq\" \"seq_along\" \"seq_len\" \"seq.Date\" \n", "[6] \"seq.default\" \"seq.int\" \"seq.POSIXt\" \"sequence\" " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "apropos(\"seq\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Finally, you can always use a search engine - e.g. Googling for \"how to generate random numbers from a normal distribution in R\" returns:" ] }, { "cell_type": "raw", "metadata": {}, "source": [ "R Learning Module: Probabilities and Distributions\n", "www.ats.ucla.edu › stat › r › modules\n", "University of California, Los Angeles\n", "Generating random samples from a normal distribution ... (For more information on the random number generator used in R please refer to the help pages for the ...\n", "\n", "R: The Normal Distribution\n", "https://stat.ethz.ch/R-manual/R-devel/library/.../Normal.html\n", "ETH Zurich\n", "Normal {stats}, R Documentation ... quantile function and random generation for the normal distribution with mean equal to mean and ... number of observations.\n", "\n", "CASt R: Random numbers\n", "astrostatistics.psu.edu/.../R/Random.html\n", "Pennsylvania State University\n", "It is often necessary to simulate random numbers in R. There are many functions available to ... Let's consider the well-known normal distribution as an example: ?Normal .... Creating functions in R, as illustrated above, is a common procedure." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## R as a Programming Language\n", "\n", "In the following sections, we will discuss some programming concepts in the context of the R language, just to get you started and to highlight some of the nice statistical features built into R. In later sections, we will cover basic concepts that are used in R, but also exist in any programming language. These should be kept in mind, as the Unix shell is also a programming language, and we will cover some of it in this course as part of the bioinformatics pipeline.\n", "\n", "\n", "## Assigning to variables\n", "\n", "Variable assignments in R are made using the `<-` operator. " ] }, { "cell_type": "code", "execution_count": 38, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "15" ], "text/latex": [ "15" ], "text/markdown": [ "15" ], "text/plain": [ "[1] 15" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "x <- 3\n", "y <- 5\n", "\n", "z <- x * y\n", "\n", "z" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Creating and using sequences" ] }, { "cell_type": "code", "execution_count": 39, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
    \n", "\t
  1. 1
  2. \n", "\t
  3. 2
  4. \n", "\t
  5. 3
  6. \n", "\t
  7. 4
  8. \n", "
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 1\n", "\\item 2\n", "\\item 3\n", "\\item 4\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 1\n", "2. 2\n", "3. 3\n", "4. 4\n", "\n", "\n" ], "text/plain": [ "[1] 1 2 3 4" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "1:4" ] }, { "cell_type": "code", "execution_count": 40, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
    \n", "\t
  1. 2
  2. \n", "\t
  3. 5
  4. \n", "\t
  5. 8
  6. \n", "\t
  7. 11
  8. \n", "
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 2\n", "\\item 5\n", "\\item 8\n", "\\item 11\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 2\n", "2. 5\n", "3. 8\n", "4. 11\n", "\n", "\n" ], "text/plain": [ "[1] 2 5 8 11" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "seq(2, 12, 3)" ] }, { "cell_type": "code", "execution_count": 41, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
    \n", "\t
  1. 0
  2. \n", "\t
  3. 0.785398163397448
  4. \n", "\t
  5. 1.5707963267949
  6. \n", "\t
  7. 2.35619449019234
  8. \n", "\t
  9. 3.14159265358979
  10. \n", "
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 0\n", "\\item 0.785398163397448\n", "\\item 1.5707963267949\n", "\\item 2.35619449019234\n", "\\item 3.14159265358979\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 0\n", "2. 0.785398163397448\n", "3. 1.5707963267949\n", "4. 2.35619449019234\n", "5. 3.14159265358979\n", "\n", "\n" ], "text/plain": [ "[1] 0.0000000 0.7853982 1.5707963 2.3561945 3.1415927" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "seq(from=0, to=pi, by=pi/4)" ] }, { "cell_type": "code", "execution_count": 42, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
    \n", "\t
  1. 0
  2. \n", "\t
  3. 0.785398163397448
  4. \n", "\t
  5. 1.5707963267949
  6. \n", "\t
  7. 2.35619449019234
  8. \n", "\t
  9. 3.14159265358979
  10. \n", "
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 0\n", "\\item 0.785398163397448\n", "\\item 1.5707963267949\n", "\\item 2.35619449019234\n", "\\item 3.14159265358979\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 0\n", "2. 0.785398163397448\n", "3. 1.5707963267949\n", "4. 2.35619449019234\n", "5. 3.14159265358979\n", "\n", "\n" ], "text/plain": [ "[1] 0.0000000 0.7853982 1.5707963 2.3561945 3.1415927" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "seq(from=0, to=pi, length.out = 5)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Vectorized operations" ] }, { "cell_type": "code", "execution_count": 43, "metadata": { "collapsed": true }, "outputs": [], "source": [ "x <- 1:10\n", "y <- 1:10" ] }, { "cell_type": "code", "execution_count": 44, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
    \n", "\t
  1. 1
  2. \n", "\t
  3. 4
  4. \n", "\t
  5. 9
  6. \n", "\t
  7. 16
  8. \n", "\t
  9. 25
  10. \n", "\t
  11. 36
  12. \n", "\t
  13. 49
  14. \n", "\t
  15. 64
  16. \n", "\t
  17. 81
  18. \n", "\t
  19. 100
  20. \n", "
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 1\n", "\\item 4\n", "\\item 9\n", "\\item 16\n", "\\item 25\n", "\\item 36\n", "\\item 49\n", "\\item 64\n", "\\item 81\n", "\\item 100\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 1\n", "2. 4\n", "3. 9\n", "4. 16\n", "5. 25\n", "6. 36\n", "7. 49\n", "8. 64\n", "9. 81\n", "10. 100\n", "\n", "\n" ], "text/plain": [ " [1] 1 4 9 16 25 36 49 64 81 100" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "x * y" ] }, { "cell_type": "code", "execution_count": 45, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
    \n", "\t
  1. 0
  2. \n", "\t
  3. 1
  4. \n", "\t
  5. 1.22464679914735e-16
  6. \n", "\t
  7. -1
  8. \n", "\t
  9. -2.44929359829471e-16
  10. \n", "
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 0\n", "\\item 1\n", "\\item 1.22464679914735e-16\n", "\\item -1\n", "\\item -2.44929359829471e-16\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 0\n", "2. 1\n", "3. 1.22464679914735e-16\n", "4. -1\n", "5. -2.44929359829471e-16\n", "\n", "\n" ], "text/plain": [ "[1] 0.000000e+00 1.000000e+00 1.224647e-16 -1.000000e+00 -2.449294e-16" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "x <- seq(0, 2*pi, length.out = 5)\n", "sin(x)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Functions\n", "\n", "A function is code that behaves like a black box - you give it some input and it returns some output. Functions are essenital because they allow you to design potentially complicated algorithms without having to keep track of the algorithmic details - all you need to remember are the function name (which you can search with `apropos` or by prepending `??` to the search term), the input arguments (TAB provides these), and what type of output will be generated. Most of R's usefulness comes from the large collection of functions that it provides - for example, `library()`, `seq()`, `as.fractions()` are all functions. You can also write your own R functions - this will be covered in detail in a later session - but we show the basics here.\n", "\n", "### Creating a function\n", "\n", "A function has the following structure\n", "\n", "```R\n", "function_name <- function(arguments) {\n", " body_of_function\n", " return(result)\n", " }\n", "```\n", "\n", "**function_name** is defined by the user (you). It can be anything you like, but meaningfulnames are encouraged to make code more readable to humans. \n", "\n", "**function** is a keyword (one that has special meaning to R). It tells R that this is a function you are defining (as opposed to a variable).\n", "\n", "**arguments** are inputs to the function. Usually, when you write a function, you want it to do something to a variable or variables.\n", "\n", "**body_of_function** is a list of R commands. They are whatever you wish this function to do with the arguments.\n", "\n", "**return** is a keyword. It tells R to send something back to the code that 'called' it.\n", "\n", "**result** is user-defined. It is whatever you want R to send back to the code that called this function.\n", "\n", "\n", "The simple example below will make this explicit. " ] }, { "cell_type": "code", "execution_count": 46, "metadata": { "collapsed": false }, "outputs": [], "source": [ "MyFunc <- function(a, b) {\n", " c <- a * b\n", " d <- a + b - c\n", " return(d)\n", " }" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**function_name** is MyFunc\n", "\n", "**arguments** are a and b\n", "\n", "**body_of_function** is\n", "\n", " c <- a * b\n", " d <- a + b - c\n", "\n", "**result** is d\n", "\n" ] }, { "cell_type": "code", "execution_count": 47, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "-11" ], "text/latex": [ "-11" ], "text/markdown": [ "-11" ], "text/plain": [ "[1] -11" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "MyFunc(5, 4)" ] }, { "cell_type": "code", "execution_count": 48, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "-11" ], "text/latex": [ "-11" ], "text/markdown": [ "-11" ], "text/plain": [ "[1] -11" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "MyFunc(b=4, a=5)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Graphics\n", "----" ] }, { "cell_type": "code", "execution_count": 49, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0gAAANICAMAAADKOT/pAAADAFBMVEUAAAABAQECAgIDAwME\nBAQFBQUGBgYHBwcICAgJCQkKCgoLCwsMDAwNDQ0ODg4PDw8QEBARERESEhITExMUFBQVFRUW\nFhYXFxcYGBgZGRkaGhobGxscHBwdHR0eHh4fHx8gICAhISEiIiIjIyMkJCQlJSUmJiYnJyco\nKCgpKSkqKiorKyssLCwtLS0uLi4vLy8wMDAxMTEyMjIzMzM0NDQ1NTU2NjY3Nzc4ODg5OTk6\nOjo7Ozs8PDw9PT0+Pj4/Pz9AQEBBQUFCQkJDQ0NERERFRUVGRkZHR0dISEhJSUlKSkpLS0tM\nTExNTU1OTk5PT09QUFBRUVFSUlJTU1NUVFRVVVVWVlZXV1dYWFhZWVlaWlpbW1tcXFxdXV1e\nXl5fX19gYGBhYWFiYmJjY2NkZGRlZWVmZmZnZ2doaGhpaWlqampra2tsbGxtbW1ubm5vb29w\ncHBxcXFycnJzc3N0dHR1dXV2dnZ3d3d4eHh5eXl6enp7e3t8fHx9fX1+fn5/f3+AgICBgYGC\ngoKDg4OEhISFhYWGhoaHh4eIiIiJiYmKioqLi4uMjIyNjY2Ojo6Pj4+QkJCRkZGSkpKTk5OU\nlJSVlZWWlpaXl5eYmJiZmZmampqbm5ucnJydnZ2enp6fn5+goKChoaGioqKjo6OkpKSlpaWm\npqanp6eoqKipqamqqqqrq6usrKytra2urq6vr6+wsLCxsbGysrKzs7O0tLS1tbW2tra3t7e4\nuLi5ubm6urq7u7u8vLy9vb2+vr6/v7/AwMDBwcHCwsLDw8PExMTFxcXGxsbHx8fIyMjJycnK\nysrLy8vMzMzNzc3Ozs7Pz8/Q0NDR0dHS0tLT09PU1NTV1dXW1tbX19fY2NjZ2dna2trb29vc\n3Nzd3d3e3t7f39/g4ODh4eHi4uLj4+Pk5OTl5eXm5ubn5+fo6Ojp6enq6urr6+vs7Ozt7e3u\n7u7v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn6+vr7+/v8/Pz9/f3+/v7////i\nsF19AAAACXBIWXMAABJ0AAASdAHeZh94AAAgAElEQVR4nO3dZ2AURR8G8MndpZOEkJDQBQIB\nQpWE3kvoSG8ivTdDUbpGARFBRKqgAoK+KlIVRTR0UJEiRQy9d1A6gbTbd1sgQHJ1dudu9/l9\nyMxd9nb+xnu4u73ZWcIBgNMI6wIAtABBAqAAQQKgAEECoABBAqAAQQKgAEECoABBAqAAQQKg\nAEECoABBAqAAQQKgAEECoABBAqAAQQKgAEECoABBAqAAQQKgAEECoABBAqAAQQKgAEECoABB\nAqAAQQKgAEECoABBAqAAQQKgAEECoABBAqAAQQKgAEECoABBAqAAQQKgAEECoABBAqAAQQKg\nAEECoABBAqAAQQKgAEECoABBUs35+GrhXhGNJ1yz4zGfEeJtfat7gwsYvZY+vX3n/YbFvQMj\nu/9ktriP2cT/32fu2EXILjuKg0wQJJWkv+1FJL5j021+lG1BGibs9rMnN5cHySOR+jct7ONK\nABn93F31SPlUm2uDzBAkdaR3JE+NsPlhtgXpZUIKjtmTcesPD34In5f8hZFa8K9JS/39c2X1\nqC7E9/pzd20m5GOba4PMECR1TBVeiqb+9u/hj0L53mpbH2ZbkEoQMu7prf6EeC1P5cx/xvAj\nbc/2QUcIGfj8feaKJDTJ1togMwRJFTf8CMmTKHavFCKkDd9OJuQl7rtyxTku+bNahbzyV/3o\nLn9vH0LqXOsV7l36PfEJLQTJ/Gl5n4JdTz6zvztTW7wUUKXPNqHfSXqZm5DxO/71qZfYuWYg\nZPaTMArjpc2M8inU+h/xt/xI/IvYHn6bKvzL1kh+D3M5bh4hnyr+x9AkBEkV0zN9iFnbqVPP\ndOmJvUQI0+Mq8ju+UnfFp3e5ouKtsjc4KQRx4s1clzLt7q988kMGpb0YpAhC2kq9rz/55I/M\nQSrUWdzS8y/+5r/epLRwLOJN8QXyvDchNfmi/vMiUWZ1/iQagyCpoiEhwc99jOef2LlyCkEa\nyz+VyzcrJGWhj/BML9ytDP+zByeGgBBTURP/s9vTh94UclS8rvAp6D2OO7WXf2yvvU+C9gp/\nd6vl/z3Z+mmQ+AwV418aST3+5teEjBV+m1SckMjUnvynquPCzQaEnFLsr6BlCJIqChBS9bm7\nhCe2z5sr1nNR0lO6KyGxUpDqPeTS+dZ0XgpS3evcZf5TUNTTh47j713IcVf5N3H+tzjxM9KE\np7/dL8SOGEp3mX4o8+FvYbzWt7g7NfkPa/xrT29C1oub7+DvH86/wZsh3nqLkEXK/Rk0DEFS\nhS8hncWOfGT6tvTEFg46pC/85BP+1SS1Kf+6JAXpEH/vLT/xqS0ESXil+JAQr6d7q0BIC6Hd\n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\nYVIrKR6ke2VIgS7VSY5jio5yKYhU7BZFKih/kZwboUoHKcUYWkXwibLDLPUIatWAhF1TdhQJ\nsyAlkkqPuKQYskXRUa781IQoHqRppE0qxy0jdRQdpTfhn3Zpr5JFio4i6EiUDtJpMlbZAUS3\nfIpe4d+RkCEqjMUuSIPJdv7ndtJd0VH8+fcPigepIrksNNU97is5SmFxtZC9yr+GryJllA7S\nr+RzZQcQzSHr+J/pLbupMBa7IBUPElY5SAmKVHSUH9auLax4kHLlFZvO5LCCg6RWExN0iHRW\ncBDBzdyx05UO0kKyVdkBRJWDVLxWJLMg5YgRm2jFn+blFR/hwHHhZ3q4h/LLWJnfIAp/ruA6\n5zg3Q+kgjSbvV/Qr0fe6sqOERKduiH9vq/LHswSsgnSfNBLbWJKk8EjKB0mUPpy0VXqMle3L\nkS4pyo6xhk+q4kFqTzyqdilJQhVdryiF1GkuHBrsoMoyUqyCdI60E9u25LzCI6kTpKsdSP5L\nSg8yhBDfqWmKDvFveL105YNUJzf/6SV9Immm5CCXCCm4/s6RpmS8kqNkYBWku6Sx2MaSuwqP\npEaQzPMDSU0VFmp7fLgNeV3REbr68a8SigdJklqMKHl45hohe/jmQbi3wi/iIlZBMvtUFtsY\nP6XfwqoQpH+bkbDPlX2lyPAor5eST4uNZA6nWpC418RnulLSDEXEtjM5ouAoGZgdbCiaS3jm\npeUqpvRAygcpqSppofhxhn09fhLbBkTJ7xdnkQxKHtNIT00X217kuIKjcHmixKYvOaDkKDJm\nQYojf/I/d5PhSg+kfJDeIsPTlR6D20/ESw6YIwKVfAn/tY+gEonts1XBUf6RjuGnl/FR9GX8\nVZPwb465nPGxkqPImAXpAGmUxqU2VPS7F5HiQUrLF6zCqvNpBbz28c+KuaSj8mMp/dbOHGn8\nhf/5Phmp6DC7SOtHnPkjou0vZLmuJGZ4BdJD8XEUD9IZElRFouiK7Ws8TI26VST5VJg5pvhn\npB0+pGHXMqSCsjNwzW3IS51jSGFtz7XjUiYX9iw6VfmLOCgepC1PPlecVXSc7U1z+ZZ/Q41r\nFyl/sOFI77L+MfFKv+VKfr92QNTrSh8WluB8JAAKECQAChAkAAoQJAAKECQAChAkAAoQJAAK\nECQAChAkAAoQJAAKECQAChAkAAoQJAAKECQAChAkAAoQJAAKECQAChAkAAoQJAAKECQAChAk\nAAoQJAAKECQAChAkAAoQJAAKECQAChAkAAoQJAAKECQAChAkAAoQJAAKECQAChAkAAoQJAAK\nECQAChAkAAoQJAAKECT3lOhVx8xxKeVyXmFdCYgQJDc1hSzmuKlkGes6QIIguamUcsHXT/o0\nN7OuAyQIkrvaa+hSP+gS6ypAhiC5rdGELGFdA2RAkNzWGeJzm3UNkAFBclfmVl6kP+siIAOC\n5K6+Jh92JjtYVwEyBMlNXQ95OfVKYMnHrOsACYLkptob9nHcfBLPug6QIEjuaSUZyf9Mq+T5\nD+tKQIQgAVCAIAFQgCABUIAgAVCAIAFQgCABUIAgAVCAIAFQgCABUIAgAVCAIAFQgCABUIAg\nAVCAIAFQgCABUIAgAVCAIAFQgCABUIAgAVCAIAFQgCABUIAgAVCAIAFQgCABUIAgAVCAIAFQ\ngCABUIAgAVCAIAFQgCABUIAgAVDwf/cnXyW12cOtAAAAAElFTkSuQmCC", "text/plain": [ "Plot with title “Graph of Sin(x)”" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "x <- seq(0, 2*pi, length.out = 100)\n", "plot(x, sin(x), main=\"Graph of Sin(x)\")" ] }, { "cell_type": "code", "execution_count": 50, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nQiKRvN8u2NnZsS9q3F0rT4p16tR5vzW/1rvv6VvUqlWLfVFYWFhjlkwmk48yQ0QzZ858tSOQ\n/ZR8JQAAAO8HwY6HJk2axL7Yu3fvxIkTKyoq2LeFhYUDBgy4evXqu6wkPj6e/WBwcHDfvn3F\nYvGtW7fedPJ03bp17Ivi4uKoqCj2daNGjd6v/rp16+ro6BDRH3/8wY4SQkR5eXns3aOampry\n2y8U4j/t6ZvITxnn5OTUmPXzzz+zlxWyfZmnTp3asGFDjWXY3ZSvBAAA4P3gyRM85O7u/v33\n3//0009EtHz58tjY2FatWlVUVMTHx+fk5Ghra7/LA7jkZ07XrVvHXto/d+7cNy08a9asZ8+e\nNWjQ4Ndff2VPpA4cOPC9+9U0NTUnT548b968ly9ftm3bdvr06US0ePFiNjNNmjRJXptC/Kc9\nfRMDAwNHR8eUlJTqp7+JKD09na3fyMgoPj6+efPmL1++nDp1avfu3eUnvrOysp4+fUpEzZo1\n+8B9AQCATx2nt26AskilUvmgdNVpaGhs27bN3t6eXndXLDtEHOvZs2c1zgyKxWL21gpHR0d2\nGfauWD09PU9Pz+pL2tnZyYfQe/XJE/IexJYtW76p/jeNY9eyZcvCwkJ2GUXdFfsue/rar4jt\ngZNIJOxbdhw7+Y20DMPIZDIfHx/2gz/99BPDMHPmzGHf9u7dWz4YDVsYxrEDAIAPh1Ox/CQU\nChctWnThwoUhQ4bY2tqKRCJTU9PevXufPXs2ICCAffLV25mbm58+fbpr165GRkZ169YdOnRo\ncnJy+/btiSglJWXv3r3yJUUi0YEDB4KCgmxsbCQSybBhwy5dulSvXr0PqV9PT+/06dPLly9v\n166dmZmZqalpu3btli1bdvbs2VfvTvhA776nb9evXz8iunTp0t27d9kpUVFRf/75JxFZWVmF\nhIQQ0cSJE9lOwd27d7MPriUi9qrHdu3ascPpAQAAvDcB82+n5ADepEGDBnfu3DEyMsLtnEQk\nk8kaNmx49+7dkJCQZcuWveOnnjx5IpFIpFLpzp07+/btq9QKAQCA99BjB6AYQqGQfWLYr7/+\n+uq9sW/yyy+/SKVSBweHnj17KrM6AAD4JCDYASjMiBEjXFxc8vPzt27d+i7Ll5eXszcUR0RE\naGriTiYAAPhQCHYACqOpqblixQr6//PT/nX5uLi4p0+fdu7cGd11AACgELjGDgAAAIAn0GMH\n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", "text/plain": [ "Plot with title “Graph of Tan(x)”" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "par(mfrow=c(2,2))\n", "plot(x, sin(x), main=\"Graph of Sin(x)\")\n", "plot(x, cos(x), main=\"Graph of Cos(x)\", type=\"o\", col=\"blue\", lty=2)\n", "plot(x, tan(x), main=\"Graph of Tan(x)\", type=\"l\", col=\"red\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Saving graphics to a file\n", "\n", "The concept of \"saving\" a graphical plot in R involves the following steps\n", "\n", "- open a \"device\" to plot to (the next shows a `pdf` device)\n", " - this includes the filename and other configuration parameters such as width and height\n", "- write all the plotting and customization commands as usual\n", "- close the device with `dev.close()` - this writes the plot to file" ] }, { "cell_type": "code", "execution_count": 51, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "png: 2" ], "text/latex": [ "\\textbf{png:} 2" ], "text/markdown": [ "**png:** 2" ], "text/plain": [ "png \n", " 2 " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "pdf(\"trig.pdf\", width=12, height=4)\n", "par(mfrow=c(1,3))\n", "plot(x, sin(x), main=\"Graph of Sin(x)\")\n", "plot(x, cos(x), main=\"Graph of Cos(x)\", type=\"o\", col=\"blue\", lty=2)\n", "plot(x, tan(x), main=\"Graph of Tan(x)\", type=\"l\", col=\"red\")\n", "dev.off()" ] }, { "cell_type": "code", "execution_count": 52, "metadata": { "collapsed": false }, "outputs": [], "source": [ "?device" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Basic Programming Concepts\n", "\n", "The following sections introduce some basic programming concepts within the context of R, but they are common ingredients in any programming language\n", "\n", " - Variable Assignment\n", " - Data Types\n", " - Operators\n", " - Looping and branching\n", " - Errors and debugging\n", "\n", "### Variable Assignment\n", "\n", "We've covered this already, but note that there is more than one assignment operator. Later, when we discuss custom functions in greater detail, we'll talk about the \"=\" assignment operator. Note that while some programmers use \"=\" in place of \"<-\" (they are *almost* equivalent), it is considered best practice to use \"<-\" for assignments in R.\n", "\n", "### Data Types\n", "\n", "When we assign variables in R (and in any programming language), they are assigned a 'type' (implicitly or explicitly). Some common types are:\n", "\n", "- numeric\n", " \n", " In R, this includes both floating points (decimal) and integers (e.g. 1.2, 3.14159, 15)\n", " \n", " \n", "- integer\n", "\n", " Non-floating point number (e.g. 1, 2, -4, etc., but not 1.2, 3.14159,...)\n", " \n", "- logical\n", " \n", " TRUE or FALSE\n", "\n", "- character\n", "\n", " Words and letters. NB: numbers can be treated as characters too - we'll do some examples that illustrate that.\n", "\n", "In R, these are also 'classes', and the distinction between 'type' and 'class' is a bit abstract and won't really help us with basic programming, so using a gross and somewhat incorrect (but workable) simplification, we'll just refer to the above as classes. New classes can be created from these basic classes:\n", "\n", "- vector\n", "\n", " This is actually the same as 'numeric'. R sees numbers as vectors of length 1.

\n", "\n", "- matrix\n", "\n", " A 2-dimensional array of numerics.

\n", "\n", "- list\n", "\n", " Like a vector, but elements can be other than numeric (such as a collection of logicals, character strings, etc.)

\n", " \n", "- dataframe\n", "\n", " A 2-dimensional array that allows columns to be different types.

\n", " \n", "- tibble\n", "\n", " New version of dataframe. We'll talk more about this in future lectures.\n", " \n", "### Operators\n", " \n", "Once we have variables of different types or classes, we usually want to *do* something with them. That can mean anything from simple arithmetic to summaries to custom made R functions. Here, we will discuss simple operators.\n", "\n", "#### Arithmetic operators\n", "\n", "- *, + , - , /\n", "\n", "These all do what you expect to numbers (numeric types), but things get a little tricky when we have vectors and matrices. To be explicit, the above operators are multiplication, addition, subtraction and division, respectively.

\n", "\n", "- %*% \n", "\n", "This is what is known as the 'dot' product for vectors and matrices.

\n", "\n", "- %% \n", "\n", "This is the modulus operator. (When you divide an integer by another integer it returns the remainder)

\n", "\n", "- %/% \n", "\n", "This is the integer division operator. It returns the result of a division without the remainder.



\n", "\n", "#### Logical Operators\n", "\n", "- \\>, <, ==, !=, >=, <=\n", "\n", "The above compare variables and return a 'logical' result (TRUE or FALSE)

\n", "\n", "- &, |\n", "\n", "The above are 'AND' and 'OR' logical operators, respectively. We can combine the previous operators with these to form complex logical queries. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Examples\n", "\n", "The only way to learn R is by using R. They require a bit more knowledge than the notes describe. Remember to use `TAB` and `?` and `apropos` whenever you're stuck.\n", "\n", "\n", "1. **Using arithmetic operators on numbers.**\n", "\n", " a. If you put USD 100 in a bank that pays 5 percent interest compounded daily, how much will you have in the bank at the end of one year? Recall from high school math that\n", " $$\n", " A = P(1 + r/n)^m\n", " $$\n", " where $A$ is the amount, $P$ is the principal, $r$ is the interest rate, $n$ is the compoundings per period and $m$ is the number of periods.\n", "\n", " b. What is the (Euclidean) distance between two points at (1,5) and (4,8)? Recall that the Euclidean distance between two points (x1, y1) and (x2, y2) is given by the Pythagorean theorem:\n", "\n", " $$\n", " \\sqrt{(x_1 - x_2)^2 + (y_1 - y_2)^2}\n", " $$

\n", " \n", "2. **Assigning variables**\n", " Write the formula in part 1a using variables (i.e. P,r,n,m) and then assign those variables to the values above. Assign the result to the variable A, and then print A.\n", " \n", "3. **Data Types**\n", " Define two variables of the following classes: numeric, character, logical and integer by assigning names (of your choice) to values (of your choice). (The integer is tricky - google or use help for this).\n", " \n", "4. **Operators**\n", " Use the variables above to find the results of the operators *, +, -, /, %%, %*%, %/%, <, >, ==, !=, <=, >=. Which variables work with which data classes?" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Your code here" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Your code here" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Your code here" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Loops and Branching\n", "\n", "Sometimes, actually, nearly all the time, we want to repeat an operation or series of operations over many instances of a variable. For example, suppose I have a list of numbers and I want to double them all. This is a very simple example, and the first way I will show you to do it is *exactly the wrong way* in R. But we need simple examples to learn, so here we go.\n", "\n", "There are a couple of ways to make a loop, depending on whether or not you know how many iterations will be required when you write the code.\n", "\n", "A ``for`` loop is a loop that repeats over something called an iterator. The simplest example would be a count, say I want to do something 6 times. Then a ``for`` loop may be used. Doubling a list of known length calls for a ``for`` loop. (I'm kinda lying here... will clarify this in a bit.)\n", "\n", "A ``while`` loop is used when conditions during execution of the code determine when the loop is terminated. Suppose we have a list of coin toss outcomes, and we want to count how many flips it took to get 3 heads. We don't know how many iterations the loop will take, but we do have a condition for stopping.\n" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[1] 2 5 8 11 14 17 20\n", "[1] 4 10 16 22 28 34 40\n" ] } ], "source": [ "## for loop example.\n", "\n", "v <- seq(from = 2, to = 20, by = 3)\n", "\n", "print(v)\n", "\n", "\n", "for (i in 1:length(v)) {\n", " v[i] <- 2*v[i]\n", "}\n", "\n", "print(v)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The ``i`` in the above ``for`` loop is called an *iterator*. At the first step, ``i`` is *initialized* to 1 (because the code tells it to start at 1 and end at the length of v, with the ``in 1:length(v)`` statement. Each time the code in the body is executed, it is incremented (in this case, sequentially, one at a time). Iterators can be much fancier though. Here are a few examples:" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[1] 1\n", "[1] 10\n", "[1] 32\n", "[1] 1.45\n" ] } ], "source": [ "## for loop example\n", "\n", "iterator_variable <- c(1,10,32,1.45)\n", "\n", "\n", "for ( i in iterator_variable){\n", " print(i)\n", "}" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[1] 1\n", "[1] 10\n", "[1] 32\n", "[1] 1.45\n", "[1] \"the\"\n", "[1] \"quick brown fox\"\n" ] } ], "source": [ "## for loop example\n", "\n", "iterator_variable <- list(1,10,32,1.45,\"the\", \"quick brown fox\")\n", "\n", "\n", "for ( i in iterator_variable){\n", " print(i)\n", "}" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " [1] 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0\n", " [38] 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0\n", " [75] 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 1 0 1 0 0\n", "[1] 5\n" ] } ], "source": [ "## while loop example\n", "\n", "samples <- rbinom(100,1,prob = 0.2) # generate 100 Bernouli trials with success probability 0.2\n", "i <- 0 #initialize index for samples vector\n", "\n", "\n", "found_success <- 'FALSE' #initialize the loop termination condition\n", "\n", "while (found_success == 'FALSE'){\n", " i <- i+1\n", " if (samples[i] == 1)\n", " found_success <- 'TRUE'\n", "}\n", "\n", "print(samples) # print all trials \n", "print(i) # print index of first success. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The above code also contains an example of 'branching'. Branching is when the code that executes depends upon the current state of the program. In this example, the command ``found_success <- 'TRUE'`` only executes when the current (ith) component of ``samples`` is a 1." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Examples\n", "\n", "1. Write a ``for`` loop to print the index of each success in ``samples``.\n", "\n", "2. Write a ``while`` loop to find the index of the third success.\n", " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Avoiding loops: Vectorization\n", "\n", "In R, and in other scripting languages, it is usually best to avoid loops when possible. Historically, looping in interpreted languages was slow. Nowadays, the issue is more with programming style, readability and lowering the possibilty of errors.\n", "\n", "We avoid loops by using what is called 'vectorization'. In other words, we use functions that work on whole vectors at once, rather than one element at a time (of course, at the lowest level, the code is iterating over each element. It is just happening using very fast machine code.)\n", "\n", "Many operations in R are vectorized. For example, we just used a ``for`` loop to double the elements of a vector. We could have done this another way:" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[1] 2 5 8 11 14 17 20\n", "[1] 4 10 16 22 28 34 40\n" ] } ], "source": [ "## Vectorization example\n", "\n", "v <- seq(from = 2, to = 20, by = 3)\n", "\n", "print(v)\n", "\n", "print (2*v)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "R interprets the multiplication operator to do componentwise multiplication (because it's the only thing that 'makes sense'). Suppose we have two vectors of the same length. What does ``*`` do?" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[1] 2 5 8 11 14 17 20\n", "[1] 1 4 7 10 13 16 19\n", "[1] 2 20 56 110 182 272 380\n" ] } ], "source": [ "v <- seq(from = 2, to = 20, by = 3)\n", "\n", "w <- seq(from = 1, to = 21, by = 3)\n", "\n", "print(v)\n", "print(w)\n", "\n", "print(v*w)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Again, multiplication is componentwise. There is another way to multiply 2 vectors of the same size:" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " [,1]\n", "[1,] 1022\n" ] } ], "source": [ "print(v %*% w)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This is called the 'dot product'. The ith component of v is multiplied by the ith component of w, and these are added together for all i. Because linear algebra is beyond our scope, we won't deal with this operation much. \n", "\n", "R has vectorization built in to many functions. In practice, if you ever feel you need to code a loop, you should look do some googling and see if there is another way. \n", "\n", "We'll first talk a bit more about vectors, matrices and lists, and then we will cover some common R functions that take these as arguments." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Examples\n", "\n", "1. Create the vector (1,2,3,4,5,6) using the ``seq`` command in R.\n", "\n", "2. Add 2 to every element in the vector.\n", "\n", "3. Square every element of the original vector." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Vectors, lists, and matrices\n", "\n", "Linear algebra is not a pre-requisite for this course, so for our purposes, we will think of vectors as lists of numbers. They are much, much more than that, but that material is very much beyond the scope of this course. We will also mention (for those for whom it is meaningful) that vectors can be multiplied (in various ways) and matrices and vectors are related objects, and we can also multiply matrices together as well as multiply vectors and matrices.\n", "\n", "#### Creating vectors lists and matrices\n", "\n", "- The *concatenate* function in R builds vectors. We can also obtain vectors from other functions as we have seen in the start of these notes with the function ``seq``

\n", "\n", "- Matrices are built with the command ``matrix``. They can also be constructed from vectors or returned from certain functions.

\n", "\n", "- Lists are created with the ``list`` function." ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[1] 1 2 3 4\n" ] } ], "source": [ "## Example of vector creation\n", "\n", "v <- c(1,2,3,4)\n", "print(v)" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " [,1] [,2] [,3]\n", "[1,] 1 5 9\n", "[2,] 2 6 10\n", "[3,] 3 7 11\n", "[4,] 4 8 12\n" ] } ], "source": [ "## Example of matrix creation\n", "\n", "## First just create a vector of entries\n", "matrix_entries <- c(1,2,3,4,5,6,7,8,9,10,11,12)\n", "\n", "M <- matrix(matrix_entries, ncol = 3, nrow = 4)\n", "print(M)" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " [,1] [,2]\n", "[1,] 1 7\n", "[2,] 2 8\n", "[3,] 3 9\n", "[4,] 4 10\n", "[5,] 5 11\n", "[6,] 6 12\n" ] } ], "source": [ "## We can create matrices of different dimensions\n", "\n", "N <- matrix(matrix_entries, ncol = 2, nrow = 6)\n", "print(N)" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " new_column\n", "[1,] 1 5 9 1\n", "[2,] 2 6 10 1\n", "[3,] 3 7 11 1\n", "[4,] 4 8 12 1\n" ] } ], "source": [ "## add rows or columns with row bind (``rbind``) or column bind (``cbind``)\n", "\n", "## First create a vector of the appropriate length:\n", "\n", "new_column <- rep(1,4)\n", "\n", "P <- cbind(M, new_column)\n", "print(P)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Examples\n", "\n", "1. Create 3 vectors, one using concatenate, one using ``rep`` and one using ``seq``\n", "\n", "2. Create 3 matrices: one 2x2, one 6x4, one a 4x4 with ones on the diagonal and zeroes everywhere else.\n", "\n", "3. Use cbind and rbind to add one row and one column to the 6x4 matrix." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Your code here" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Common Operations on Vectors and Matrices\n", "\n", "Two major categories of vector operations are\n", "\n", "- Componentwise operations\n", "- Summary operations\n", "\n", "We have already seen some componentwise operations (e.g. the doubling example). Let's look at some summary operations and we will do some more componentwise in the examples." ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "35" ], "text/latex": [ "35" ], "text/markdown": [ "35" ], "text/plain": [ "[1] 35" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "## Sum of the components of a vector\n", "\n", "v <- c(1,2,5,8,9,10)\n", "sum(v)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "5.83333333333333" ], "text/latex": [ "5.83333333333333" ], "text/markdown": [ "5.83333333333333" ], "text/plain": [ "[1] 5.833333" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "## mean\n", "\n", "mean(v)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "6.5" ], "text/latex": [ "6.5" ], "text/markdown": [ "6.5" ], "text/plain": [ "[1] 6.5" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "## median\n", "\n", "median(v)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Examples\n", "\n", "1. Create two vectors length 3 using the concatenate function. What happens when you add them using `+`?\n", "\n", "2. Create a third vector of length 2. What happens if you try to add that vector to one of the others?\n", "\n", "3. Create another vector of length 4. Add it to the vector of length 2. What do you observe?\n", "\n", "4. We have examples of sum, mean and median summary operations. Can you find some others?\n", "\n", "5. Try the functions ``sort`` and ``sample``. What do they do? Try ``sample`` with and without replacement.\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "## Your code here" ] } ], "metadata": { "kernelspec": { "display_name": "R", "language": "R", "name": "ir" }, "language_info": { "codemirror_mode": "r", "file_extension": ".r", "mimetype": "text/x-r-source", "name": "R", "pygments_lexer": "r", "version": "3.3.1" } }, "nbformat": 4, "nbformat_minor": 0 }