{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# 1- Introduction" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "R is an open-source programming language, meaning that users can contribute packages that make our lives easier, and we can use them for free." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For a first impression of what R can do, let's draw 1000 random numbers following the normal distribution (`rnorm` = random normal) and plots them. R has a built-in function, called `plot` for this:" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "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\nsF19AAAACXBIWXMAABJ0AAASdAHeZh94AAAgAElEQVR4nOydZUAbSxeGJ54Q3F0LhVJKoVDq\nUOqFulB3d9fbUnd3d5dbd71tv3qpu0DdjQqa7LcymyZkoyxww53nR3ebnd0dkn13Zs6cOQdg\nCAQi14CCrgACURhAQkIgWAAJCYFgASQkBIIFkJAQCBZAQkIgWAAJCYFgASQkBIIFkJAQCBZA\nQkIgWAAJCYFgASQkBIIFkJAQCBZAQkIgWAAJCYFgASQkBIIFkJAQCBZAQkIgWAAJCYFgASQk\nBIIFkJAQCBZAQkIgWAAJCYFgASQkBIIFkJAQCBZAQkIgWAAJCYFgASQkBIIFkJAQCBZAQkIg\nWAAJCYFgASQkBIIFkJAQCBZAQkIgWAAJCYFgASQkBIIFkJAQCBZAQkIgWAAJCYFgASQkBIIF\nkJAQCBZAQkIgWAAJCYFgASQkBIIFkJAQCBZAQkIgWAAJCYFgASQkBIIFkJAQCBZAQkIgWAAJ\nCYFgASQkBIIFkJAQCBZAQkIgWAAJCYFgASQkBIIFkJAQCBZAQkIgWAAJCYFgASQkBIIFkJAQ\nCBZAQkIgWAAJCYFgASQkBIIFkJAQCBZAQkIgWAAJCYFgASQkBIIFkJAQCBZAQkIgWAAJCYFg\nASQkBIIFkJAQCBZAQkIgWAAJCYFgASQkBIIFkJAQCBZAQkIgWAAJCYFgASQkBIIFkJAQCBZA\nQkIgWAAJCYFgASQkBIIFkJAQCBZAQkIgWAAJCYFgASQkBIIFkJAQCBZAQkIgWAAJCYFgASQk\nBIIFkJAQCBZAQkIgWAAJCYFgASQkBIIF8kFIN64iECbFDcOf8rwX0hWAQJgYVwx+zPNeSP8D\nGXl+DwSCRTLA/ww+BwkJgcgBEhICwQJISAgECyAhIRAsgISEQLAAEhICwQJISAgECyAhIRAs\ngISEQLAAEhICwQJISAgECyAhIRAsgISEQLAAEhICwQJISAgECyAhIRAsgISEQOD8Xtouuv2K\ndKPPR0JCIDDsaVHHdolt7IJfGHsBJCQEAssqXv07vvkaU0pm5BWQkBAIbKf5J3L7VnzAyCsg\nISEQWL84uFNluJFXQEJCILAOreFOkx5GXgEJCYHARpeFOyUnG3kFJCQEAkvinie3p7h3jbwC\nEhICgWGdHPfIMdkOu97GXgAJCYHAsMxBQvNiZqIR2cZeAAkJgSB4f3DBoQ/Gn46EhECwABIS\nAsECSEgIBAsgISEQLICElBPZ898Fdm+EyYKEpMrtOAnghWwuoLsjTBYkJBXOmdU5+Oz8CNFf\nBXN7hMmChKRMpl8XcnuQa3hCUMR/GiQkZY4Lv1A71XsWyP0RJgsSkjLzi8OdUbEFcn+EyYKE\n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", "text/plain": [ "plot without title" ] }, "metadata": { "image/png": { "height": 420, "width": 420 } }, "output_type": "display_data" } ], "source": [ "plot(rnorm(1000))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The normal distribution is a special case of the distribution called \"gaussian\" with mean (average location)=1 and standard deviation (average dispersion) = 0. The gaussian distribution has a bell shape, as you can see below using the R function `hist` that displays a histogram. You'll run into this kind of distribution many times throughout the course, as it is one the most important distributions:" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0gAAANICAMAAADKOT/pAAAC/VBMVEUAAAABAQECAgIDAwME\nBAQFBQUGBgYHBwcICAgJCQkKCgoLCwsMDAwNDQ0ODg4PDw8QEBARERESEhITExMUFBQVFRUW\nFhYXFxcYGBgZGRkaGhobGxscHBwdHR0eHh4fHx8gICAhISEiIiIjIyMkJCQlJSUmJiYnJyco\nKCgpKSkqKiorKyssLCwtLS0uLi4vLy8wMDAxMTEyMjIzMzM0NDQ1NTU2NjY3Nzc4ODg5OTk6\nOjo7Ozs8PDw9PT0+Pj4/Pz9AQEBBQUFCQkJDQ0NERERFRUVGRkZHR0dISEhJSUlKSkpLS0tM\nTExNTU1OTk5PT09QUFBRUVFSUlJTU1NUVFRVVVVWVlZXV1dYWFhZWVlaWlpbW1tcXFxdXV1e\nXl5fX19gYGBhYWFiYmJjY2NkZGRlZWVmZmZnZ2doaGhpaWlqampra2tsbGxtbW1ubm5vb29w\ncHBxcXFycnJzc3N0dHR1dXV2dnZ3d3d4eHh5eXl6enp7e3t8fHx9fX1+fn5/f3+AgICBgYGC\ngoKDg4OEhISFhYWGhoaHh4eIiIiJiYmKioqLi4uMjIyNjY2Ojo6Pj4+QkJCRkZGSkpKTk5OU\nlJSVlZWWlpaXl5eYmJiZmZmampqbm5ucnJydnZ2enp6fn5+goKChoaGioqKjo6OkpKSlpaWm\npqanp6eoqKipqamqqqqsrKytra2urq6vr6+wsLCxsbGysrKzs7O0tLS1tbW2tra3t7e4uLi5\nubm6urq7u7u8vLy9vb2+vr6/v7/AwMDBwcHCwsLDw8PExMTFxcXGxsbHx8fIyMjJycnKysrL\ny8vMzMzNzc3Ozs7Pz8/Q0NDR0dHS0tLT09PU1NTV1dXW1tbX19fY2NjZ2dna2trb29vc3Nzd\n3d3e3t7f39/g4ODh4eHi4uLj4+Pk5OTl5eXm5ubn5+fo6Ojp6enq6urr6+vs7Ozt7e3u7u7v\n7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn6+vr7+/v8/Pz9/f3+/v7///+fk9WC\nAAAACXBIWXMAABJ0AAASdAHeZh94AAAgAElEQVR4nO3de5xVdb3w8e8Aw53kJiKEyCiQUnY6\nKoqmlCNqYZKAchMqNC/djilq5aHyxtMhs6xOmaXlk/U82VFTe0DM1HzMp3PsdlIqU8AbZCjg\n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", "text/plain": [ "Plot with title “Histogram of rnorm(1000)”" ] }, "metadata": { "image/png": { "height": 420, "width": 420 } }, "output_type": "display_data" } ], "source": [ "hist(rnorm(1000))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "One of the simplest possible tasks in R is to enter an arithmetic expression and receive a result (The second line is the answer from the machine.)" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/html": [ "4" ], "text/latex": [ "4" ], "text/markdown": [ "4" ], "text/plain": [ "[1] 4" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "2+2" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "So the machine knows that 2 plus 2 makes 4. Of course, it also knows how to do other standard calculations. For example:" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/html": [ "2.30258509299405" ], "text/latex": [ "2.30258509299405" ], "text/markdown": [ "2.30258509299405" ], "text/plain": [ "[1] 2.302585" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "log(10)" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
    \n", "\t
  1. 1.27067883496267
  2. \n", "\t
  3. -1.18618521571559
  4. \n", "\t
  5. 2.00588462817234
  6. \n", "\t
  7. -0.134252164774933
  8. \n", "\t
  9. -0.539329780391393
  10. \n", "\t
  11. 0.646516771698539
  12. \n", "\t
  13. 0.341210041604869
  14. \n", "\t
  15. 0.574232042613886
  16. \n", "\t
  17. -0.394895693320249
  18. \n", "\t
  19. 0.305034801650006
  20. \n", "\t
  21. -1.03889345197287
  22. \n", "\t
  23. -1.05058004702046
  24. \n", "\t
  25. 0.51559362149582
  26. \n", "\t
  27. 1.23734399990439
  28. \n", "\t
  29. -1.53335397862233
  30. \n", "
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 1.27067883496267\n", "\\item -1.18618521571559\n", "\\item 2.00588462817234\n", "\\item -0.134252164774933\n", "\\item -0.539329780391393\n", "\\item 0.646516771698539\n", "\\item 0.341210041604869\n", "\\item 0.574232042613886\n", "\\item -0.394895693320249\n", "\\item 0.305034801650006\n", "\\item -1.03889345197287\n", "\\item -1.05058004702046\n", "\\item 0.51559362149582\n", "\\item 1.23734399990439\n", "\\item -1.53335397862233\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 1.27067883496267\n", "2. -1.18618521571559\n", "3. 2.00588462817234\n", "4. -0.134252164774933\n", "5. -0.539329780391393\n", "6. 0.646516771698539\n", "7. 0.341210041604869\n", "8. 0.574232042613886\n", "9. -0.394895693320249\n", "10. 0.305034801650006\n", "11. -1.03889345197287\n", "12. -1.05058004702046\n", "13. 0.51559362149582\n", "14. 1.23734399990439\n", "15. -1.53335397862233\n", "\n", "\n" ], "text/plain": [ " [1] 1.2706788 -1.1861852 2.0058846 -0.1342522 -0.5393298 0.6465168\n", " [7] 0.3412100 0.5742320 -0.3948957 0.3050348 -1.0388935 -1.0505800\n", "[13] 0.5155936 1.2373440 -1.5333540" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "rnorm(15)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 2-Assigments" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "You will quickly need to store intermediate results, so that you do not have to key them in over and over again.\n", "R, like other computer languages, has symbolic variables, that is names that can be used to represent values." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To assign the value 2 to the variable x, you can enter:" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "x<-2" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\"<-\" should be read as a single symbol: an arrow pointing to the variable to which the value is assigned. This is known as the **assignment** operator. Spacing around operators is generally disregarded by R, \n", "\n", "*N.B.* Adding a space in the middle of \"<-\" changes the meaning to “less than” followed by “minus” (conversely, omitting the space when comparing a variable to a negative number has unexpected consequences!)." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/html": [ "2" ], "text/latex": [ "2" ], "text/markdown": [ "2" ], "text/plain": [ "[1] 2" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "x" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 3- Data types\n", "\n", "\n", "R has 6 basic data types, some of which we have already skimmed over:\n", "\n", "- **character**: e.g. \"a\", \"hola\", etc.\n", "- **numeric** (real or decimal): 3, 3.1415, -10, etc.\n", "- **integer**: 3L (The L specifies this variable to be an integer)\n", "- **logical**: TRUE or FALSE\n", "- **complex**: 1+2i\n", "\n", "In case of doubt about the data type, R provides built-in functions to inspect this, for example, `class` and `typeof`." ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/html": [ "'character'" ], "text/latex": [ "'character'" ], "text/markdown": [ "'character'" ], "text/plain": [ "[1] \"character\"" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "'character'" ], "text/latex": [ "'character'" ], "text/markdown": [ "'character'" ], "text/plain": [ "[1] \"character\"" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "class(\"a\")\n", "typeof(\"a\")" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/html": [ "'numeric'" ], "text/latex": [ "'numeric'" ], "text/markdown": [ "'numeric'" ], "text/plain": [ "[1] \"numeric\"" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "'double'" ], "text/latex": [ "'double'" ], "text/markdown": [ "'double'" ], "text/plain": [ "[1] \"double\"" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "class(3)\n", "typeof(3)" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/html": [ "'integer'" ], "text/latex": [ "'integer'" ], "text/markdown": [ "'integer'" ], "text/plain": [ "[1] \"integer\"" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "'integer'" ], "text/latex": [ "'integer'" ], "text/markdown": [ "'integer'" ], "text/plain": [ "[1] \"integer\"" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "class(3L)\n", "typeof(3L)" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "text/html": [ "'logical'" ], "text/latex": [ "'logical'" ], "text/markdown": [ "'logical'" ], "text/plain": [ "[1] \"logical\"" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "'logical'" ], "text/latex": [ "'logical'" ], "text/markdown": [ "'logical'" ], "text/plain": [ "[1] \"logical\"" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "class(TRUE)\n", "typeof(TRUE)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 4- Functions" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The way calculations are done in an encapsulated way is through the use of **functions**. For example, R has the following built-in functions, `sqrt` and `abs`, designed to compute the square root and absolute value of an input value." ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/html": [ "5" ], "text/latex": [ "5" ], "text/markdown": [ "5" ], "text/plain": [ "[1] 5" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "sqrt(25)" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/html": [ "5" ], "text/latex": [ "5" ], "text/markdown": [ "5" ], "text/plain": [ "[1] 5" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "abs(-5)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "When we use a function to do something, we generally refer to this as **calling** the function, and the values that we type into the function (there can be more than one) are referred to as the **arguments** of that function." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 4.1 - Function arguments, their names and their defaults" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "There’s two more fairly important things that you need to understand about how functions work in\n", "R, and that’s the use of “named” arguments, and default values” for arguments. To understand what these two concepts are all about, let's introduce the function `round`, which can be used to round some value to the nearest whole number." ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "text/html": [ "3" ], "text/latex": [ "3" ], "text/markdown": [ "3" ], "text/plain": [ "[1] 3" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "round(3.1415)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This function allows you to input a second argument to the function that specifies the number of decimal places that you want to round the number to." ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "data": { "text/html": [ "3.14" ], "text/latex": [ "3.14" ], "text/markdown": [ "3.14" ], "text/plain": [ "[1] 3.14" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "round( 3.14165, 2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The first argument is the number that needs to be rounded (i.e., 3.1415) and the second argument is the number of decimal places that it should be rounded to (i.e., 2 ). Both arguments are separated by a **comma**. \n", "\n", "In this simple example, it’s quite easy to remember which one argument comes first and which one comes second, but for more complicated functions this is not easy. Fortunately, most R functions make use of argument names. \n", "\n", "For the `round` function, the number that needs to be rounded is specified using the x argument, and the\n", "number of decimal points that you want it rounded to is specified using the digits argument. Because\n", "we have these names available to us, we can specify the arguments to the function by name." ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "data": { "text/html": [ "3.14" ], "text/latex": [ "3.14" ], "text/markdown": [ "3.14" ], "text/plain": [ "[1] 3.14" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "round( x=3.14165, digits = 2) # Note that for arguments we use \"=\"" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**N.B.** When specifying the arguments using their names, it doesn’t matter what order you type them in. However, if you don’t use the argument names, then you have to input the arguments in the correct order:" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "data": { "text/html": [ "3.14" ], "text/latex": [ "3.14" ], "text/markdown": [ "3.14" ], "text/plain": [ "[1] 3.14" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "3.14" ], "text/latex": [ "3.14" ], "text/markdown": [ "3.14" ], "text/plain": [ "[1] 3.14" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "3.14" ], "text/latex": [ "3.14" ], "text/markdown": [ "3.14" ], "text/plain": [ "[1] 3.14" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "round( 3.14165, 2 )\n", "round( x = 3.1415, digits = 2 )\n", "round( digits = 2, x = 3.1415 )" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Finally, most of the functions have arguments with DEFAULT values, that is, arguments that if not specified, they take a particular value. In our example, 0 was the default value for digits." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Function help\n", "\n", "**Important:** In case of doubt about the name of the arguments, you can always look at the documentation the function by executing the name of function (without parenthesis) with symbol \"?\" prepended:" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [], "source": [ "?round" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 5- Data Structures\n", "\n", "Let's see what data structures R includes. Data structures are a way of organizing, managing and storing data." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 5.1 - Vectors\n", "\n", "Vectors are just variables that that can store multiple values. One specific feature of vectors is that their elements must be of the same data type." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 5.1.1 - Initilization\n", "\n", "This is done all by type all the values you want to store separated by a inside the combine function, `c`" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "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": [ "myvector<-c(1,2,3,4)\n", "myvector" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 5.1.2 - Accesing individual elements\n", "\n", "You can always access any individual element of a vector by using \"[]\" and the number of the index corresponding to the element position you want to retrieve the information from" ] }, { "cell_type": "code", "execution_count": 58, "metadata": {}, "outputs": [ { "data": { "text/html": [ "1" ], "text/latex": [ "1" ], "text/markdown": [ "1" ], "text/plain": [ "[1] 1" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "2" ], "text/latex": [ "2" ], "text/markdown": [ "2" ], "text/plain": [ "[1] 2" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "3" ], "text/latex": [ "3" ], "text/markdown": [ "3" ], "text/plain": [ "[1] 3" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "4" ], "text/latex": [ "4" ], "text/markdown": [ "4" ], "text/plain": [ "[1] 4" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "myvector[1] # this gives the first element\n", "myvector[2] # this gives the second element\n", "myvector[3] # this gives the third element\n", "myvector[4] # this gives the fourth element\n", "# and so on..." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Obviously, if you try to access an element that does not exist in the vector, then you'll get a Not a Number" ] }, { "cell_type": "code", "execution_count": 60, "metadata": {}, "outputs": [ { "data": { "text/html": [ "<NA>" ], "text/latex": [ "" ], "text/markdown": [ "<NA>" ], "text/plain": [ "[1] NA" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "myvector[5]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 5.1.3 - Changing a vector\n", "\n", "You may want to change the values stored in a particular vector element. It's actually very easy:" ] }, { "cell_type": "code", "execution_count": 61, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
    \n", "\t
  1. 1
  2. \n", "\t
  3. 100
  4. \n", "\t
  5. 3
  6. \n", "\t
  7. 4
  8. \n", "
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 1\n", "\\item 100\n", "\\item 3\n", "\\item 4\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 1\n", "2. 100\n", "3. 3\n", "4. 4\n", "\n", "\n" ], "text/plain": [ "[1] 1 100 3 4" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "myvector[2]<-100\n", "myvector" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 5.1.4 - Indexing" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Indexing by index number\n", "\n", "Like an accessing operation, but we pass a vector with the indexes of the elements we want to extract. For example:" ] }, { "cell_type": "code", "execution_count": 62, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
    \n", "\t
  1. 1
  2. \n", "\t
  3. 100
  4. \n", "
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 1\n", "\\item 100\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 1\n", "2. 100\n", "\n", "\n" ], "text/plain": [ "[1] 1 100" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "myvector[c(1,2)]" ] }, { "cell_type": "code", "execution_count": 66, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
    \n", "\t
  1. 1
  2. \n", "\t
  3. 4
  4. \n", "
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 1\n", "\\item 4\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 1\n", "2. 4\n", "\n", "\n" ], "text/plain": [ "[1] 1 4" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "myvector[c(1,4)]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Note that elements will be returned according to the order of the vector supplied:" ] }, { "cell_type": "code", "execution_count": 63, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
    \n", "\t
  1. 100
  2. \n", "\t
  3. 1
  4. \n", "
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 100\n", "\\item 1\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 100\n", "2. 1\n", "\n", "\n" ], "text/plain": [ "[1] 100 1" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "myvector[c(2,1)]" ] }, { "cell_type": "code", "execution_count": 68, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
    \n", "\t
  1. 1
  2. \n", "\t
  3. 100
  4. \n", "\t
  5. 3
  6. \n", "\t
  7. 4
  8. \n", "
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 1\n", "\\item 100\n", "\\item 3\n", "\\item 4\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 1\n", "2. 100\n", "3. 3\n", "4. 4\n", "\n", "\n" ], "text/plain": [ "[1] 1 100 3 4" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "myvector[1:4]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Logical indexing \n", "\n", "We can also select elements of a vector that satisfy a particular condition. This is called logical indexing" ] }, { "cell_type": "code", "execution_count": 69, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
    \n", "\t
  1. 1
  2. \n", "\t
  3. 100
  4. \n", "\t
  5. 3
  6. \n", "\t
  7. 4
  8. \n", "
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 1\n", "\\item 100\n", "\\item 3\n", "\\item 4\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 1\n", "2. 100\n", "3. 3\n", "4. 4\n", "\n", "\n" ], "text/plain": [ "[1] 1 100 3 4" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "myvector" ] }, { "cell_type": "code", "execution_count": 71, "metadata": {}, "outputs": [ { "data": { "text/html": [ "100" ], "text/latex": [ "100" ], "text/markdown": [ "100" ], "text/plain": [ "[1] 100" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "myvector[myvector>10]" ] }, { "cell_type": "code", "execution_count": 72, "metadata": {}, "outputs": [ { "data": { "text/html": [ "4" ], "text/latex": [ "4" ], "text/markdown": [ "4" ], "text/plain": [ "[1] 4" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "myvector[myvector == 4]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 5.1.5- Operations to vectors\n", "\n", "You can always alter all elements of a vector at once by applying operations like addition, substraction, multiplication and divisions" ] }, { "cell_type": "code", "execution_count": 56, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
    \n", "\t
  1. 2
  2. \n", "\t
  3. 3
  4. \n", "\t
  5. 4
  6. \n", "\t
  7. 5
  8. \n", "
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 2\n", "\\item 3\n", "\\item 4\n", "\\item 5\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 2\n", "2. 3\n", "3. 4\n", "4. 5\n", "\n", "\n" ], "text/plain": [ "[1] 2 3 4 5" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
    \n", "\t
  1. -1
  2. \n", "\t
  3. 0
  4. \n", "\t
  5. 1
  6. \n", "\t
  7. 2
  8. \n", "
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item -1\n", "\\item 0\n", "\\item 1\n", "\\item 2\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. -1\n", "2. 0\n", "3. 1\n", "4. 2\n", "\n", "\n" ], "text/plain": [ "[1] -1 0 1 2" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
    \n", "\t
  1. 10
  2. \n", "\t
  3. 20
  4. \n", "\t
  5. 30
  6. \n", "\t
  7. 40
  8. \n", "
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 10\n", "\\item 20\n", "\\item 30\n", "\\item 40\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 10\n", "2. 20\n", "3. 30\n", "4. 40\n", "\n", "\n" ], "text/plain": [ "[1] 10 20 30 40" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
    \n", "\t
  1. 0.2
  2. \n", "\t
  3. 0.4
  4. \n", "\t
  5. 0.6
  6. \n", "\t
  7. 0.8
  8. \n", "
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 0.2\n", "\\item 0.4\n", "\\item 0.6\n", "\\item 0.8\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 0.2\n", "2. 0.4\n", "3. 0.6\n", "4. 0.8\n", "\n", "\n" ], "text/plain": [ "[1] 0.2 0.4 0.6 0.8" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Add 1\n", "myvector + 1\n", "# Substracte 1\n", "myvector -2\n", "# Multiply by 10\n", "myvector*10\n", "# Divide by 5\n", "myvector/5" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "You can also perform the above operatations between vectors:" ] }, { "cell_type": "code", "execution_count": 64, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
    \n", "\t
  1. 4
  2. \n", "\t
  3. 8
  4. \n", "\t
  5. 12
  6. \n", "\t
  7. 16
  8. \n", "
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 4\n", "\\item 8\n", "\\item 12\n", "\\item 16\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 4\n", "2. 8\n", "3. 12\n", "4. 16\n", "\n", "\n" ], "text/plain": [ "[1] 4 8 12 16" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "myvector + (3*myvector)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 5.1.6 - Handy functions\n", "\n", "- `length`: it yields the number of elements in the vector:" ] }, { "cell_type": "code", "execution_count": 74, "metadata": {}, "outputs": [ { "data": { "text/html": [ "4" ], "text/latex": [ "4" ], "text/markdown": [ "4" ], "text/plain": [ "[1] 4" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "length(myvector)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- `lapply`: It allows you apply a certain function to each element of a vector. It returns a list (see below)." ] }, { "cell_type": "code", "execution_count": 75, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
    \n", "\t
  1. 0
  2. \n", "\t
  3. 0.693147180559945
  4. \n", "\t
  5. 1.09861228866811
  6. \n", "\t
  7. 1.38629436111989
  8. \n", "
\n" ], "text/latex": [ "\\begin{enumerate}\n", "\\item 0\n", "\\item 0.693147180559945\n", "\\item 1.09861228866811\n", "\\item 1.38629436111989\n", "\\end{enumerate}\n" ], "text/markdown": [ "1. 0\n", "2. 0.693147180559945\n", "3. 1.09861228866811\n", "4. 1.38629436111989\n", "\n", "\n" ], "text/plain": [ "[[1]]\n", "[1] 0\n", "\n", "[[2]]\n", "[1] 0.6931472\n", "\n", "[[3]]\n", "[1] 1.098612\n", "\n", "[[4]]\n", "[1] 1.386294\n" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# This applies a log function to each element of the vector\n", "lapply(myvector, log)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- `sapply`: The same as `lapply`, but it coerces the output to a vector." ] }, { "cell_type": "code", "execution_count": 76, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
    \n", "\t
  1. 0
  2. \n", "\t
  3. 0.693147180559945
  4. \n", "\t
  5. 1.09861228866811
  6. \n", "\t
  7. 1.38629436111989
  8. \n", "
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 0\n", "\\item 0.693147180559945\n", "\\item 1.09861228866811\n", "\\item 1.38629436111989\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 0\n", "2. 0.693147180559945\n", "3. 1.09861228866811\n", "4. 1.38629436111989\n", "\n", "\n" ], "text/plain": [ "[1] 0.0000000 0.6931472 1.0986123 1.3862944" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Same as above, but as a vector \n", "sapply(myvector, log)" ] }, { "cell_type": "code", "execution_count": 77, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
    \n", "\t
  1. 0
  2. \n", "\t
  3. 0.693147180559945
  4. \n", "\t
  5. 1.09861228866811
  6. \n", "\t
  7. 1.38629436111989
  8. \n", "
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 0\n", "\\item 0.693147180559945\n", "\\item 1.09861228866811\n", "\\item 1.38629436111989\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 0\n", "2. 0.693147180559945\n", "3. 1.09861228866811\n", "4. 1.38629436111989\n", "\n", "\n" ], "text/plain": [ "[1] 0.0000000 0.6931472 1.0986123 1.3862944" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# This is the same as using the log function\n", "log(myvector)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Obviously the above result could be obtained just passing the vector to the `log` function, but both `lapply` and `sapply` functions can be very handy for applying complex functions, for example:" ] }, { "cell_type": "code", "execution_count": 79, "metadata": {}, "outputs": [], "source": [ "# Let's see the documentation of this function again\n", "?sapply" ] }, { "cell_type": "code", "execution_count": 78, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
    \n", "\t
  1. 1.4142135623731
  2. \n", "\t
  3. 2.23606797749979
  4. \n", "\t
  5. 3.16227766016838
  6. \n", "\t
  7. 4.12310562561766
  8. \n", "
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 1.4142135623731\n", "\\item 2.23606797749979\n", "\\item 3.16227766016838\n", "\\item 4.12310562561766\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 1.4142135623731\n", "2. 2.23606797749979\n", "3. 3.16227766016838\n", "4. 4.12310562561766\n", "\n", "\n" ], "text/plain": [ "[1] 1.414214 2.236068 3.162278 4.123106" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "sapply(c(1:length(myvector)), function(x) sqrt(x**2 + 1))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 5.2 - Matrix\n", "\n", "Matrices are just a bidimemnsional version of vectors, i.e. it has rows and columns. Like with vectors, the elements of a matrix must be of the same data type. \n", "\n", "In addition, most of the rules that apply to vectors also apply to vectors." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 5.2.1 - Initilization\n", "\n", "A matrix can be initialized with function `matrix`" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\t\n", "\t\n", "\n", "
13
24
\n" ], "text/latex": [ "\\begin{tabular}{ll}\n", "\t 1 & 3\\\\\n", "\t 2 & 4\\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "\n", "| 1 | 3 |\n", "| 2 | 4 |\n", "\n" ], "text/plain": [ " [,1] [,2]\n", "[1,] 1 3 \n", "[2,] 2 4 " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Arrange the above vector's 4 elements into a 2x2 matrix \n", "mymatrix<-matrix(myvector, nrow = 2, ncol=2)\n", "mymatrix" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Another way of crating a matrix is by converting data to a matrix using the the function `as.matrix`" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "
1
2
3
4
\n" ], "text/latex": [ "\\begin{tabular}{l}\n", "\t 1\\\\\n", "\t 2\\\\\n", "\t 3\\\\\n", "\t 4\\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "\n", "| 1 |\n", "| 2 |\n", "| 3 |\n", "| 4 |\n", "\n" ], "text/plain": [ " [,1]\n", "[1,] 1 \n", "[2,] 2 \n", "[3,] 3 \n", "[4,] 4 " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "as.matrix(myvector)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 5.2.2- Some handy functions" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- `nrow`: it gives the number of rows \n", "- `ncol`: it gives the number of columns \n", "- `dim`: it provides the number both the number or rows and columns" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "data": { "text/html": [ "2" ], "text/latex": [ "2" ], "text/markdown": [ "2" ], "text/plain": [ "[1] 2" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "2" ], "text/latex": [ "2" ], "text/markdown": [ "2" ], "text/plain": [ "[1] 2" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
    \n", "\t
  1. 2
  2. \n", "\t
  3. 2
  4. \n", "
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 2\n", "\\item 2\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 2\n", "2. 2\n", "\n", "\n" ], "text/plain": [ "[1] 2 2" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "nrow(mymatrix)\n", "ncol(mymatrix)\n", "dim(mymatrix)" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
    \n", "\t
  1. 4
  2. \n", "\t
  3. 1
  4. \n", "
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 4\n", "\\item 1\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 4\n", "2. 1\n", "\n", "\n" ], "text/plain": [ "[1] 4 1" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "dim(as.matrix(myvector))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 5.3 - Factors\n", "\n", "Factors are kind of data structrure similar to vectors, but with the difference that each value has a distint label. As a result, they are useful with **nominal** data. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 5.3.1 - Initilization\n", "\n", "Factors are created using the `factor()` function." ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
    \n", "\t
  1. 1
  2. \n", "\t
  3. 1
  4. \n", "\t
  5. 1
  6. \n", "\t
  7. 2
  8. \n", "\t
  9. 2
  10. \n", "\t
  11. 2
  12. \n", "\t
  13. 3
  14. \n", "\t
  15. 3
  16. \n", "\t
  17. 3
  18. \n", "
\n", "\n", "
\n", "\t\n", "\t\tLevels:\n", "\t\n", "\t
    \n", "\t\t
  1. '1'
  2. \n", "\t\t
  3. '2'
  4. \n", "\t\t
  5. '3'
  6. \n", "\t
\n", "
" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 1\n", "\\item 1\n", "\\item 1\n", "\\item 2\n", "\\item 2\n", "\\item 2\n", "\\item 3\n", "\\item 3\n", "\\item 3\n", "\\end{enumerate*}\n", "\n", "\\emph{Levels}: \\begin{enumerate*}\n", "\\item '1'\n", "\\item '2'\n", "\\item '3'\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 1\n", "2. 1\n", "3. 1\n", "4. 2\n", "5. 2\n", "6. 2\n", "7. 3\n", "8. 3\n", "9. 3\n", "\n", "\n", "\n", "**Levels**: 1. '1'\n", "2. '2'\n", "3. '3'\n", "\n", "\n" ], "text/plain": [ "[1] 1 1 1 2 2 2 3 3 3\n", "Levels: 1 2 3" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# This is a group \n", "group.factor <- factor(c(1,1,1,2,2,2,3,3,3))\n", "group.factor" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We could've also created this variable by coercing the given vector using the function `as.factor`" ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
    \n", "\t
  1. 1
  2. \n", "\t
  3. 1
  4. \n", "\t
  5. 1
  6. \n", "\t
  7. 2
  8. \n", "\t
  9. 2
  10. \n", "\t
  11. 2
  12. \n", "\t
  13. 3
  14. \n", "\t
  15. 3
  16. \n", "\t
  17. 3
  18. \n", "
\n", "\n", "
\n", "\t\n", "\t\tLevels:\n", "\t\n", "\t
    \n", "\t\t
  1. '1'
  2. \n", "\t\t
  3. '2'
  4. \n", "\t\t
  5. '3'
  6. \n", "\t
\n", "
" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 1\n", "\\item 1\n", "\\item 1\n", "\\item 2\n", "\\item 2\n", "\\item 2\n", "\\item 3\n", "\\item 3\n", "\\item 3\n", "\\end{enumerate*}\n", "\n", "\\emph{Levels}: \\begin{enumerate*}\n", "\\item '1'\n", "\\item '2'\n", "\\item '3'\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 1\n", "2. 1\n", "3. 1\n", "4. 2\n", "5. 2\n", "6. 2\n", "7. 3\n", "8. 3\n", "9. 3\n", "\n", "\n", "\n", "**Levels**: 1. '1'\n", "2. '2'\n", "3. '3'\n", "\n", "\n" ], "text/plain": [ "[1] 1 1 1 2 2 2 3 3 3\n", "Levels: 1 2 3" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "as.factor(c(1,1,1,2,2,2,3,3,3))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**N.B** The labels are always character irrespective of whether their respective values are numeric, character or Boolean etc. in the input vector." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Many things that apply to usual vectors also apply to factors, e.g. indexing:" ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [ { "data": { "text/html": [ "1\n", "
\n", "\t\n", "\t\tLevels:\n", "\t\n", "\t
    \n", "\t\t
  1. '1'
  2. \n", "\t\t
  3. '2'
  4. \n", "\t\t
  5. '3'
  6. \n", "\t
\n", "
" ], "text/latex": [ "1\n", "\\emph{Levels}: \\begin{enumerate*}\n", "\\item '1'\n", "\\item '2'\n", "\\item '3'\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1\n", "**Levels**: 1. '1'\n", "2. '2'\n", "3. '3'\n", "\n", "\n" ], "text/plain": [ "[1] 1\n", "Levels: 1 2 3" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "group.factor[1]" ] }, { "cell_type": "code", "execution_count": 40, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
    \n", "\t
  1. 1
  2. \n", "\t
  3. 1
  4. \n", "\t
  5. 1
  6. \n", "\t
  7. 2
  8. \n", "
\n", "\n", "
\n", "\t\n", "\t\tLevels:\n", "\t\n", "\t
    \n", "\t\t
  1. '1'
  2. \n", "\t\t
  3. '2'
  4. \n", "\t\t
  5. '3'
  6. \n", "\t
\n", "
" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 1\n", "\\item 1\n", "\\item 1\n", "\\item 2\n", "\\end{enumerate*}\n", "\n", "\\emph{Levels}: \\begin{enumerate*}\n", "\\item '1'\n", "\\item '2'\n", "\\item '3'\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 1\n", "2. 1\n", "3. 1\n", "4. 2\n", "\n", "\n", "\n", "**Levels**: 1. '1'\n", "2. '2'\n", "3. '3'\n", "\n", "\n" ], "text/plain": [ "[1] 1 1 1 2\n", "Levels: 1 2 3" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "group.factor[1:4]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "However, there are certain operations that you can't perform on factors because these don't make sense, e.g. addition, substraction, multiplication and divition:" ] }, { "cell_type": "code", "execution_count": 46, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "Warning message in Ops.factor(group.factor, 2):\n", "“‘+’ not meaningful for factors”\n" ] }, { "data": { "text/html": [ "
    \n", "\t
  1. <NA>
  2. \n", "\t
  3. <NA>
  4. \n", "\t
  5. <NA>
  6. \n", "\t
  7. <NA>
  8. \n", "\t
  9. <NA>
  10. \n", "\t
  11. <NA>
  12. \n", "\t
  13. <NA>
  14. \n", "\t
  15. <NA>
  16. \n", "\t
  17. <NA>
  18. \n", "
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item \n", "\\item \n", "\\item \n", "\\item \n", "\\item \n", "\\item \n", "\\item \n", "\\item \n", "\\item \n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. <NA>\n", "2. <NA>\n", "3. <NA>\n", "4. <NA>\n", "5. <NA>\n", "6. <NA>\n", "7. <NA>\n", "8. <NA>\n", "9. <NA>\n", "\n", "\n" ], "text/plain": [ "[1] NA NA NA NA NA NA NA NA NA" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "group.factor + 2" ] }, { "cell_type": "code", "execution_count": 47, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "Warning message in Ops.factor(group.factor, 3):\n", "“‘/’ not meaningful for factors”\n" ] }, { "data": { "text/html": [ "
    \n", "\t
  1. <NA>
  2. \n", "\t
  3. <NA>
  4. \n", "\t
  5. <NA>
  6. \n", "\t
  7. <NA>
  8. \n", "\t
  9. <NA>
  10. \n", "\t
  11. <NA>
  12. \n", "\t
  13. <NA>
  14. \n", "\t
  15. <NA>
  16. \n", "\t
  17. <NA>
  18. \n", "
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item \n", "\\item \n", "\\item \n", "\\item \n", "\\item \n", "\\item \n", "\\item \n", "\\item \n", "\\item \n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. <NA>\n", "2. <NA>\n", "3. <NA>\n", "4. <NA>\n", "5. <NA>\n", "6. <NA>\n", "7. <NA>\n", "8. <NA>\n", "9. <NA>\n", "\n", "\n" ], "text/plain": [ "[1] NA NA NA NA NA NA NA NA NA" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "group.factor / 3" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 5.3.2 - Handy functions\n", "\n", "- `levels`: it yields the different levels.\n", "- `nlevels`: it yields the count of levels." ] }, { "cell_type": "code", "execution_count": 49, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
    \n", "\t
  1. '1'
  2. \n", "\t
  3. '2'
  4. \n", "\t
  5. '3'
  6. \n", "
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item '1'\n", "\\item '2'\n", "\\item '3'\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. '1'\n", "2. '2'\n", "3. '3'\n", "\n", "\n" ], "text/plain": [ "[1] \"1\" \"2\" \"3\"" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "3" ], "text/latex": [ "3" ], "text/markdown": [ "3" ], "text/plain": [ "[1] 3" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "levels(group.factor)\n", "nlevels(group.factor)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "With the `levels` function we can also redefine the labels of the factors" ] }, { "cell_type": "code", "execution_count": 51, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
    \n", "\t
  1. Label1
  2. \n", "\t
  3. Label1
  4. \n", "\t
  5. Label1
  6. \n", "\t
  7. Label2
  8. \n", "\t
  9. Label2
  10. \n", "\t
  11. Label2
  12. \n", "\t
  13. Label3
  14. \n", "\t
  15. Label3
  16. \n", "\t
  17. Label3
  18. \n", "
\n", "\n", "
\n", "\t\n", "\t\tLevels:\n", "\t\n", "\t
    \n", "\t\t
  1. 'Label1'
  2. \n", "\t\t
  3. 'Label2'
  4. \n", "\t\t
  5. 'Label3'
  6. \n", "\t
\n", "
" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item Label1\n", "\\item Label1\n", "\\item Label1\n", "\\item Label2\n", "\\item Label2\n", "\\item Label2\n", "\\item Label3\n", "\\item Label3\n", "\\item Label3\n", "\\end{enumerate*}\n", "\n", "\\emph{Levels}: \\begin{enumerate*}\n", "\\item 'Label1'\n", "\\item 'Label2'\n", "\\item 'Label3'\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. Label1\n", "2. Label1\n", "3. Label1\n", "4. Label2\n", "5. Label2\n", "6. Label2\n", "7. Label3\n", "8. Label3\n", "9. Label3\n", "\n", "\n", "\n", "**Levels**: 1. 'Label1'\n", "2. 'Label2'\n", "3. 'Label3'\n", "\n", "\n" ], "text/plain": [ "[1] Label1 Label1 Label1 Label2 Label2 Label2 Label3 Label3 Label3\n", "Levels: Label1 Label2 Label3" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "levels(group.factor) <- c(\"Label1\",\"Label2\", \"Label3\")\n", "\n", "group.factor" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 5.4 - Lists\n", "\n", "A list is an R-object that can contain **many different types** of elements inside it like vectors, functions and even another list inside it. It is a very important data structure in R." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 5.4.1 - Initialization\n", "\n", "List can be initialized with the function `list` as follows in this example:" ] }, { "cell_type": "code", "execution_count": 82, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\t
$age
\n", "\t\t
37
\n", "\t
$married
\n", "\t\t
TRUE
\n", "\t
$parents
\n", "\t\t
    \n", "\t
  1. 'Joseba'
  2. \n", "\t
  3. 'Edita'
  4. \n", "
\n", "
\n", "
\n" ], "text/latex": [ "\\begin{description}\n", "\\item[\\$age] 37\n", "\\item[\\$married] TRUE\n", "\\item[\\$parents] \\begin{enumerate*}\n", "\\item 'Joseba'\n", "\\item 'Edita'\n", "\\end{enumerate*}\n", "\n", "\\end{description}\n" ], "text/markdown": [ "$age\n", ": 37\n", "$married\n", ": TRUE\n", "$parents\n", ": 1. 'Joseba'\n", "2. 'Edita'\n", "\n", "\n", "\n", "\n", "\n" ], "text/plain": [ "$age\n", "[1] 37\n", "\n", "$married\n", "[1] TRUE\n", "\n", "$parents\n", "[1] \"Joseba\" \"Edita\" \n" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "Javi <- list( age = 37, married = TRUE, parents = c(\"Joseba\",\"Edita\"))\n", "Javi" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As you can see, here this list contains three variables of different kinds (and sizes)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
Practice: In the same as we've just seen, create list that contains a variable \"name\" with your name, \"weight\" with your weight, \"films\" with your the name of your favourites films (as a vector), and \"soccer_fan\" as TRUE or FALSE if you like soccer.
" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "#Your answer here" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 5.4.2 - Accessing lists\n", "\n", "One can access list variables using the operator \"$\" as follows:" ] }, { "cell_type": "code", "execution_count": 84, "metadata": {}, "outputs": [ { "data": { "text/html": [ "37" ], "text/latex": [ "37" ], "text/markdown": [ "37" ], "text/plain": [ "[1] 37" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "TRUE" ], "text/latex": [ "TRUE" ], "text/markdown": [ "TRUE" ], "text/plain": [ "[1] TRUE" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
    \n", "\t
  1. 'Joseba'
  2. \n", "\t
  3. 'Edita'
  4. \n", "
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 'Joseba'\n", "\\item 'Edita'\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 'Joseba'\n", "2. 'Edita'\n", "\n", "\n" ], "text/plain": [ "[1] \"Joseba\" \"Edita\" " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# This accesses my age\n", "Javi$age\n", "# this tells whether I am married or not\n", "Javi$married\n", "# this shows the names of my parents\n", "Javi$parents" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 5.4.3 - Modifying lists\n", "\n", "We can again use the operator \"$\" to edit an entry value, or add a new entry. For example:" ] }, { "cell_type": "code", "execution_count": 85, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\t
$age
\n", "\t\t
37.5
\n", "\t
$married
\n", "\t\t
TRUE
\n", "\t
$parents
\n", "\t\t
    \n", "\t
  1. 'Joseba'
  2. \n", "\t
  3. 'Edita'
  4. \n", "
\n", "
\n", "\t
$height
\n", "\t\t
177
\n", "
\n" ], "text/latex": [ "\\begin{description}\n", "\\item[\\$age] 37.5\n", "\\item[\\$married] TRUE\n", "\\item[\\$parents] \\begin{enumerate*}\n", "\\item 'Joseba'\n", "\\item 'Edita'\n", "\\end{enumerate*}\n", "\n", "\\item[\\$height] 177\n", "\\end{description}\n" ], "text/markdown": [ "$age\n", ": 37.5\n", "$married\n", ": TRUE\n", "$parents\n", ": 1. 'Joseba'\n", "2. 'Edita'\n", "\n", "\n", "\n", "$height\n", ": 177\n", "\n", "\n" ], "text/plain": [ "$age\n", "[1] 37.5\n", "\n", "$married\n", "[1] TRUE\n", "\n", "$parents\n", "[1] \"Joseba\" \"Edita\" \n", "\n", "$height\n", "[1] 177\n" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Let's modify my age\n", "Javi$age<- 37.5\n", "# Let's add my height as a new entry (in cms)\n", "Javi$height<- 177\n", "\n", "Javi" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 5.5 - Data Frames\n", "\n", "Data frames are possibly the most important data structures in R. \n", "\n", "Why is it so important? Because it's how usually most tabular data are represented, and when you work with data, you'll likely have this form of data.\n", "\n", "A data frame is a special type of list where every entry has same length, that is, a data frame is a like \"rectangular\" list." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 5.5.1 - Intialization\n", "\n", "Data frames are initialized like lists, but using the function `data.frame` instead." ] }, { "cell_type": "code", "execution_count": 98, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "
agegenderscore
17 female12
19 female10
21 male 11
37 female15
22 male 12
35 female10
18 male 11
\n" ], "text/latex": [ "\\begin{tabular}{r|lll}\n", " age & gender & score\\\\\n", "\\hline\n", "\t 17 & female & 12 \\\\\n", "\t 19 & female & 10 \\\\\n", "\t 21 & male & 11 \\\\\n", "\t 37 & female & 15 \\\\\n", "\t 22 & male & 12 \\\\\n", "\t 35 & female & 10 \\\\\n", "\t 18 & male & 11 \\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "\n", "| age | gender | score |\n", "|---|---|---|\n", "| 17 | female | 12 |\n", "| 19 | female | 10 |\n", "| 21 | male | 11 |\n", "| 37 | female | 15 |\n", "| 22 | male | 12 |\n", "| 35 | female | 10 |\n", "| 18 | male | 11 |\n", "\n" ], "text/plain": [ " age gender score\n", "1 17 female 12 \n", "2 19 female 10 \n", "3 21 male 11 \n", "4 37 female 15 \n", "5 22 male 12 \n", "6 35 female 10 \n", "7 18 male 11 " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "age <- c(17, 19, 21, 37, 22, 35, 18)\n", "gender<-factor(c(\"female\", \"female\", \"male\", \"female\", \"male\", \"female\", \"male\"))\n", "score <- c(12, 10, 11, 15, 12, 10, 11)\n", "\n", "my.dataframe <- data.frame ( age=age, gender=gender, score=score )\n", "\n", "my.dataframe" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As we said a few moments ago, data frames are usually used to represent tabular data. This is the kind of data you are usually given in the form of an external file. Data contained in external files can be imported into R in the form of data frames using the functions `read.csv` and `read.table`:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
Practice: The dataset below contains 3 measures of ability: SATV, SATQ, ACT (from Arel-Bundock V (2023). *Rdatasets: A collection of datasets originally distributed in various R packages.*). Then, use the function read.csv to load it (Just pass the whole url as an argument to this function). Save the result to a variable called \"dat\", for example.
\n", "\n", "url dataset: https://vincentarelbundock.github.io/Rdatasets/csv/psych/sat.act.csv" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "# Your code here" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 5.5.2 - Access and modifying\n", "\n", "Like with lists, the operator \"$\" is used to access and modify data frames" ] }, { "cell_type": "code", "execution_count": 101, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
    \n", "\t
  1. 17
  2. \n", "\t
  3. 19
  4. \n", "\t
  5. 21
  6. \n", "\t
  7. 37
  8. \n", "\t
  9. 22
  10. \n", "\t
  11. 35
  12. \n", "\t
  13. 18
  14. \n", "
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 17\n", "\\item 19\n", "\\item 21\n", "\\item 37\n", "\\item 22\n", "\\item 35\n", "\\item 18\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 17\n", "2. 19\n", "3. 21\n", "4. 37\n", "5. 22\n", "6. 35\n", "7. 18\n", "\n", "\n" ], "text/plain": [ "[1] 17 19 21 37 22 35 18" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# This shows the age variable\n", "my.dataframe$age" ] }, { "cell_type": "code", "execution_count": 102, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "
agegenderscorevar1
17 female12 1
19 female10 1
21 male 11 1
37 female15 1
22 male 12 1
35 female10 1
18 male 11 1
\n" ], "text/latex": [ "\\begin{tabular}{r|llll}\n", " age & gender & score & var1\\\\\n", "\\hline\n", "\t 17 & female & 12 & 1 \\\\\n", "\t 19 & female & 10 & 1 \\\\\n", "\t 21 & male & 11 & 1 \\\\\n", "\t 37 & female & 15 & 1 \\\\\n", "\t 22 & male & 12 & 1 \\\\\n", "\t 35 & female & 10 & 1 \\\\\n", "\t 18 & male & 11 & 1 \\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "\n", "| age | gender | score | var1 |\n", "|---|---|---|---|\n", "| 17 | female | 12 | 1 |\n", "| 19 | female | 10 | 1 |\n", "| 21 | male | 11 | 1 |\n", "| 37 | female | 15 | 1 |\n", "| 22 | male | 12 | 1 |\n", "| 35 | female | 10 | 1 |\n", "| 18 | male | 11 | 1 |\n", "\n" ], "text/plain": [ " age gender score var1\n", "1 17 female 12 1 \n", "2 19 female 10 1 \n", "3 21 male 11 1 \n", "4 37 female 15 1 \n", "5 22 male 12 1 \n", "6 35 female 10 1 \n", "7 18 male 11 1 " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# This adds an entry called \"var1\", with the same value in all its elements \n", "my.dataframe$var1<-1\n", "my.dataframe" ] }, { "cell_type": "code", "execution_count": 103, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "
agegenderscorevar1var2
17 female12 1 1
19 female10 1 2
21 male 11 1 3
37 female15 1 4
22 male 12 1 5
35 female10 1 6
18 male 11 1 7
\n" ], "text/latex": [ "\\begin{tabular}{r|lllll}\n", " age & gender & score & var1 & var2\\\\\n", "\\hline\n", "\t 17 & female & 12 & 1 & 1 \\\\\n", "\t 19 & female & 10 & 1 & 2 \\\\\n", "\t 21 & male & 11 & 1 & 3 \\\\\n", "\t 37 & female & 15 & 1 & 4 \\\\\n", "\t 22 & male & 12 & 1 & 5 \\\\\n", "\t 35 & female & 10 & 1 & 6 \\\\\n", "\t 18 & male & 11 & 1 & 7 \\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "\n", "| age | gender | score | var1 | var2 |\n", "|---|---|---|---|---|\n", "| 17 | female | 12 | 1 | 1 |\n", "| 19 | female | 10 | 1 | 2 |\n", "| 21 | male | 11 | 1 | 3 |\n", "| 37 | female | 15 | 1 | 4 |\n", "| 22 | male | 12 | 1 | 5 |\n", "| 35 | female | 10 | 1 | 6 |\n", "| 18 | male | 11 | 1 | 7 |\n", "\n" ], "text/plain": [ " age gender score var1 var2\n", "1 17 female 12 1 1 \n", "2 19 female 10 1 2 \n", "3 21 male 11 1 3 \n", "4 37 female 15 1 4 \n", "5 22 male 12 1 5 \n", "6 35 female 10 1 6 \n", "7 18 male 11 1 7 " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# This adds an entry called \"var2\", with different values\n", "my.dataframe$var2<-c(1:7)\n", "my.dataframe" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 5.5.3 - Handy functions\n", "\n", "- `head`: it displays the first six lines (this number can be modified with the argument \"n\") of the data frame." ] }, { "cell_type": "code", "execution_count": 105, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "
agegenderscorevar1var2
17 female12 1 1
19 female10 1 2
21 male 11 1 3
37 female15 1 4
22 male 12 1 5
35 female10 1 6
\n" ], "text/latex": [ "\\begin{tabular}{r|lllll}\n", " age & gender & score & var1 & var2\\\\\n", "\\hline\n", "\t 17 & female & 12 & 1 & 1 \\\\\n", "\t 19 & female & 10 & 1 & 2 \\\\\n", "\t 21 & male & 11 & 1 & 3 \\\\\n", "\t 37 & female & 15 & 1 & 4 \\\\\n", "\t 22 & male & 12 & 1 & 5 \\\\\n", "\t 35 & female & 10 & 1 & 6 \\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "\n", "| age | gender | score | var1 | var2 |\n", "|---|---|---|---|---|\n", "| 17 | female | 12 | 1 | 1 |\n", "| 19 | female | 10 | 1 | 2 |\n", "| 21 | male | 11 | 1 | 3 |\n", "| 37 | female | 15 | 1 | 4 |\n", "| 22 | male | 12 | 1 | 5 |\n", "| 35 | female | 10 | 1 | 6 |\n", "\n" ], "text/plain": [ " age gender score var1 var2\n", "1 17 female 12 1 1 \n", "2 19 female 10 1 2 \n", "3 21 male 11 1 3 \n", "4 37 female 15 1 4 \n", "5 22 male 12 1 5 \n", "6 35 female 10 1 6 " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "head(my.dataframe)" ] }, { "cell_type": "code", "execution_count": 106, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\t\n", "\t\n", "\n", "
agegenderscorevar1var2
17 female12 1 1
19 female10 1 2
\n" ], "text/latex": [ "\\begin{tabular}{r|lllll}\n", " age & gender & score & var1 & var2\\\\\n", "\\hline\n", "\t 17 & female & 12 & 1 & 1 \\\\\n", "\t 19 & female & 10 & 1 & 2 \\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "\n", "| age | gender | score | var1 | var2 |\n", "|---|---|---|---|---|\n", "| 17 | female | 12 | 1 | 1 |\n", "| 19 | female | 10 | 1 | 2 |\n", "\n" ], "text/plain": [ " age gender score var1 var2\n", "1 17 female 12 1 1 \n", "2 19 female 10 1 2 " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "head(my.dataframe, n = 2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- `tail`: the same as `head`, but displaying the last six lines" ] }, { "cell_type": "code", "execution_count": 109, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "
agegenderscorevar1var2
219 female10 1 2
321 male 11 1 3
437 female15 1 4
522 male 12 1 5
635 female10 1 6
718 male 11 1 7
\n" ], "text/latex": [ "\\begin{tabular}{r|lllll}\n", " & age & gender & score & var1 & var2\\\\\n", "\\hline\n", "\t2 & 19 & female & 10 & 1 & 2 \\\\\n", "\t3 & 21 & male & 11 & 1 & 3 \\\\\n", "\t4 & 37 & female & 15 & 1 & 4 \\\\\n", "\t5 & 22 & male & 12 & 1 & 5 \\\\\n", "\t6 & 35 & female & 10 & 1 & 6 \\\\\n", "\t7 & 18 & male & 11 & 1 & 7 \\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "\n", "| | age | gender | score | var1 | var2 |\n", "|---|---|---|---|---|---|\n", "| 2 | 19 | female | 10 | 1 | 2 |\n", "| 3 | 21 | male | 11 | 1 | 3 |\n", "| 4 | 37 | female | 15 | 1 | 4 |\n", "| 5 | 22 | male | 12 | 1 | 5 |\n", "| 6 | 35 | female | 10 | 1 | 6 |\n", "| 7 | 18 | male | 11 | 1 | 7 |\n", "\n" ], "text/plain": [ " age gender score var1 var2\n", "2 19 female 10 1 2 \n", "3 21 male 11 1 3 \n", "4 37 female 15 1 4 \n", "5 22 male 12 1 5 \n", "6 35 female 10 1 6 \n", "7 18 male 11 1 7 " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "tail(my.dataframe)" ] }, { "cell_type": "code", "execution_count": 110, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\t\n", "\t\n", "\n", "
agegenderscorevar1var2
635 female10 1 6
718 male 11 1 7
\n" ], "text/latex": [ "\\begin{tabular}{r|lllll}\n", " & age & gender & score & var1 & var2\\\\\n", "\\hline\n", "\t6 & 35 & female & 10 & 1 & 6 \\\\\n", "\t7 & 18 & male & 11 & 1 & 7 \\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "\n", "| | age | gender | score | var1 | var2 |\n", "|---|---|---|---|---|---|\n", "| 6 | 35 | female | 10 | 1 | 6 |\n", "| 7 | 18 | male | 11 | 1 | 7 |\n", "\n" ], "text/plain": [ " age gender score var1 var2\n", "6 35 female 10 1 6 \n", "7 18 male 11 1 7 " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "tail(my.dataframe, n=2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- `names`: it show the names all variables stored in the data frame." ] }, { "cell_type": "code", "execution_count": 111, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
    \n", "\t
  1. 'age'
  2. \n", "\t
  3. 'gender'
  4. \n", "\t
  5. 'score'
  6. \n", "\t
  7. 'var1'
  8. \n", "\t
  9. 'var2'
  10. \n", "
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 'age'\n", "\\item 'gender'\n", "\\item 'score'\n", "\\item 'var1'\n", "\\item 'var2'\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 'age'\n", "2. 'gender'\n", "3. 'score'\n", "4. 'var1'\n", "5. 'var2'\n", "\n", "\n" ], "text/plain": [ "[1] \"age\" \"gender\" \"score\" \"var1\" \"var2\" " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "names(my.dataframe)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- `str`: it returns the structure of data frame - name, type and preview of data in each column." ] }, { "cell_type": "code", "execution_count": 112, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "'data.frame':\t7 obs. of 5 variables:\n", " $ age : num 17 19 21 37 22 35 18\n", " $ gender: Factor w/ 2 levels \"female\",\"male\": 1 1 2 1 2 1 2\n", " $ score : num 12 10 11 15 12 10 11\n", " $ var1 : num 1 1 1 1 1 1 1\n", " $ var2 : int 1 2 3 4 5 6 7\n" ] } ], "source": [ "str(my.dataframe)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "And these are the same that we saw before (You're free to try them out):\n", "\n", "- `dim`: it returns the dimensions of data frame (i.e. number of rows and number of columns)\n", "- `nrow`: it returns the number of rows\n", "- `ncol`: it returns the number of columns" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 6- Packages" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As in many languages, it is common to have to use pieces of code (functions, data, etc) many times. Here is when the concept of a **package** comes in play. \n", "\n", "Basically, a package is just a collection of functions, datasets and other R objects that are all grouped together under a common name. Some packages come installed by default with R, but a vast majority of the R packages will need to be installed manually from the Internet. The large number of packages available for R, and the ease of installing and using them, has been cited as a major factor driving the widespread adoption of the language in data science.\n", "\n", "In order to use a package we need to load it, that is, we need to make their functions, data, etc available and visible to our enviroment. (**N.B.** The package needs to be installed in our computer. Visit this to know how to install a package)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 6.2 Loading a package\n", "\n", "In order to load a library, we just need to call the function `library`. Let's see an example using probably one of the most important libraries in R, ggplot2 (https://ggplot2.tidyverse.org)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "Registered S3 methods overwritten by 'tibble':\n", " method from \n", " format.tbl pillar\n", " print.tbl pillar\n", "\n", "Registered S3 methods overwritten by 'ggplot2':\n", " method from \n", " [.quosures rlang\n", " c.quosures rlang\n", " print.quosures rlang\n", "\n", "\n", "Attaching package: ‘ggplot2’\n", "\n", "\n", "The following objects are masked from ‘package:psych’:\n", "\n", " %+%, alpha\n", "\n", "\n" ] } ], "source": [ "library(ggplot2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 7- SOME PROGRAMMING BASICS\n", "\n", "At some point, in order to perform and implement complex tasks, you may end up having to write a computer program. As a consequence, it is recommendable that you get familiar with the most very basic programming operations that you can perform in R." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 7.1. Conditional statements (IF, IF...ELSE)\n", "\n", "A conditional statement is an operation that allows you to switch between different possible commands depending on a specified condition that is specified by the programmer.\n", "\n", "The most prominent of example of a conditional statement is the if statement, and the accompanying else statement. \n", "\n", "Howver, before jumping to how to define an if statement, let's go over the different logical operations in R. These will give you as a result boolean, that is, a TRUE or FALSE value:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- \"==\" : Equal (e.g. x==y)\n", "- \"!=\" : Not equal (e.g. x!=y)\n", "- \">\" : Greater than\t(e.g. x > y)\n", "- \"<\" : Less than (x < y)\n", "- \">=\" : Greater than or equal to (e.g. x >= y)\n", "- \"<=\" : Less than or equal to (e.g. x => y)" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/html": [ "FALSE" ], "text/latex": [ "FALSE" ], "text/markdown": [ "FALSE" ], "text/plain": [ "[1] FALSE" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "TRUE" ], "text/latex": [ "TRUE" ], "text/markdown": [ "TRUE" ], "text/plain": [ "[1] TRUE" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "FALSE" ], "text/latex": [ "FALSE" ], "text/markdown": [ "FALSE" ], "text/plain": [ "[1] FALSE" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "TRUE" ], "text/latex": [ "TRUE" ], "text/markdown": [ "TRUE" ], "text/plain": [ "[1] TRUE" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "FALSE" ], "text/latex": [ "FALSE" ], "text/markdown": [ "FALSE" ], "text/plain": [ "[1] FALSE" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "TRUE" ], "text/latex": [ "TRUE" ], "text/markdown": [ "TRUE" ], "text/plain": [ "[1] TRUE" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "x<-5\n", "y<-7\n", "\n", "# x equal to y\n", "x==y\n", "# x not equal to y\n", "x!=y\n", "# x greater that y\n", "x>y\n", "# x smaller that y\n", "x=y\n", "# x smaller than or equal to y\n", "x<=y" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The basic format of an if statement in R is as follows:\n", "\n", "```\n", "if ( CONDITION ) {\n", "STATEMENT1\n", "STATEMENT2\n", "ETC\n", "}\n", "````" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[1] \"x greater than 4\"\n" ] } ], "source": [ "x=5\n", "if( x > 4){\n", " print(\"x greater than 4\")\n", "}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As you can see, If the condition within the parenthesis is true, then R will execute the statements contained in the curly braces. If the condition is false, then it does nothing.\n", "\n", "If you want to perform an operation when the condition within if is not satisfied, you can extend the if statement to include an else statement as well, leading to the following syntax:\n", "\n", "```\n", "if ( CONDITION ) {\n", "STATEMENT1\n", "STATEMENT2\n", "ETC\n", "} else {\n", "STATEMENT3\n", "STATEMENT4\n", "ETC\n", "}\n", "```" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[1] \"x smaller than 4\"\n" ] } ], "source": [ "x<-2\n", "if( x > 4){\n", " print(\"x greater than 4\")\n", "} else {\n", " print(\"x smaller than 4\")\n", "}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Finally, a handy way of applying an if/else statement to several elements in a vector is by the `ifelse` function:" ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
    \n", "\t
  1. 'EVEN'
  2. \n", "\t
  3. 'ODD'
  4. \n", "\t
  5. 'ODD'
  6. \n", "\t
  7. 'EVEN'
  8. \n", "\t
  9. 'EVEN'
  10. \n", "\t
  11. 'ODD'
  12. \n", "\t
  13. 'ODD'
  14. \n", "
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 'EVEN'\n", "\\item 'ODD'\n", "\\item 'ODD'\n", "\\item 'EVEN'\n", "\\item 'EVEN'\n", "\\item 'ODD'\n", "\\item 'ODD'\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 'EVEN'\n", "2. 'ODD'\n", "3. 'ODD'\n", "4. 'EVEN'\n", "5. 'EVEN'\n", "6. 'ODD'\n", "7. 'ODD'\n", "\n", "\n" ], "text/plain": [ "[1] \"EVEN\" \"ODD\" \"ODD\" \"EVEN\" \"EVEN\" \"ODD\" \"ODD\" " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# input vector\n", "x <- c(12, 9, 23, 14, 20, 1, 5)\n", "\n", "# ifelse() function to determine odd/even numbers\n", "ifelse(x %% 2 == 0, \"EVEN\", \"ODD\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 7.2. Loops\n", "\n", "Loops are block of codes (i.e., a sequence of commands) that will execute over and over again until some termination criterion is met." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 7.2.1 while loop\n", "\n", "A while loop is a simple thing. The basic format of the loop looks like this:\n", "\n", "```\n", "while ( CONDITION ) {\n", "STATEMENT1\n", "STATEMENT2\n", "ETC\n", "}\n", "```\n", "\n", "Whenever R encounters a while statement, it checks to see if the condition within the parenthesis is TRUE. If it is, then R carries on executing all of the commands inside the curly brackets. When it gets to the\n", "bottom of those statements, it moves back up to the while statement. Then, it checks to see if the condition is TRUE. If it is, then it executes everything again. And it does so until the condition turns out to be FALSE, for which it exits the loop." ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[1] 17\n", "[1] 34\n", "[1] 51\n", "[1] 68\n", "[1] 85\n", "[1] 102\n", "[1] \"I exited the loop, yeah!\"\n" ] } ], "source": [ "x <- 0\n", "while ( x < 100 ) {\n", "x <- x + 17\n", "print( x )\n", "}\n", "print(\"I exited the loop, yeah!\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 7.2.2 for loop\n", "\n", "The for loop is similar to the while loop, but instead of running while a condition is TRUE, it runs a fixed number of iterations. The sintax in R is as follows:\n", "\n", "```\n", "for ( VAR in VECTOR ) {\n", "STATEMENT1\n", "STATEMENT2\n", "ETC\n", "}\n", "```\n", "\n", "The for loop will execute the block of code within the curly brackets, but iterations will run through the different elements in the VECTOR and setting the value of VAR to that particular vector element." ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[1] \"hola caracola\"\n", "[1] \"hola caracola\"\n", "[1] \"hola caracola\"\n", "[1] \"hola caracola\"\n", "[1] \"hola caracola\"\n" ] } ], "source": [ "for ( i in c(1:5) ) {\n", "print( \"hola caracola\" )\n", "}" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[1] 1\n", "[1] 2\n", "[1] 3\n", "[1] 4\n", "[1] 5\n" ] } ], "source": [ "for ( i in c(1:5) ) {\n", " \n", "print( i)\n", "}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
Practice: Create a variable \"x\" and set a value 0 to it. Then, create a loop that iterates a vector from 1 to 10. In each iteration update the value of x by adding the value of each element of the vector.
" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [], "source": [ "# Write your response here" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 7.3 - Write your own functions\n", "\n", "We have already introduced the concept of functions and how to use them. However, we have only used predefined functions. What if we want to write our own functions? This can be helpful in case we want to perform a specific computation.\n", "\n", "\n", "The syntax that you use to create a function is as follows:\n", "\n", "``` \n", "FNAME <- function ( ARG1, ARG2, ETC ) {\n", "STATEMENT1\n", "STATEMENT2\n", "ETC\n", "return( VALUE )\n", "}\n", "```\n", "\n", "This will create a function with the name fname, which has arguments arg1, arg2 and so forth.\n", "Whenever the function is called, R executes the statements in the curly braces, and then outputs the contents of\n", "value to the user. To note, only the final results in the value are returned. Everything that was set or stored within the function will no be visible after the function is called." ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [], "source": [ "# Example: This creates a function that multiplies a number by 3\n", "triple <- function(x) {\n", "y <- x*3\n", "return(y)\n", "}" ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [ { "data": { "text/html": [ "9" ], "text/latex": [ "9" ], "text/markdown": [ "9" ], "text/plain": [ "[1] 9" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "x<-3\n", "triple(x)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
Practice: Create a function \"myabs\" that returns the absolute value of a given number. Test that it works as expected.
" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "# Write your response here" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
Practice: Create a function \"mysquare\", of two arguments, such that it takes the square of the first one, and then it adds the second one to it. Set the second argument to take the value 2 as default. Test it.
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 8- Miscellaneous: some special Values" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "*Infinity*: It corresponds to a value that is infinitely large. You can also have -Inf. This is the value you'd obtain by dividing a number by 0. R has a built-in value for this, `Inf`" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "data": { "text/html": [ "Inf" ], "text/latex": [ "Inf" ], "text/markdown": [ "Inf" ], "text/plain": [ "[1] Inf" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "1/0" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "data": { "text/html": [ "-Inf" ], "text/latex": [ "-Inf" ], "text/markdown": [ "-Inf" ], "text/plain": [ "[1] -Inf" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "-1/0" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "data": { "text/html": [ "Inf" ], "text/latex": [ "Inf" ], "text/markdown": [ "Inf" ], "text/plain": [ "[1] Inf" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "Inf" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "*Not a Number*. The special value of NaN is short for “not a number”, and it’s basically a reserved keyword that means “there isn’t a mathematically defined number for this”. In R, this is reserved for the value `NaN`" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/html": [ "NaN" ], "text/latex": [ "NaN" ], "text/markdown": [ "NaN" ], "text/plain": [ "[1] NaN" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "0/0" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/html": [ "NaN" ], "text/latex": [ "NaN" ], "text/markdown": [ "NaN" ], "text/plain": [ "[1] NaN" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "NaN" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "*Not available*. It indicates that the value that is \"supposed\" to be stored here is missing. This is a typical situation when you read a dataset and observations miss values for some specific measured variables. In R, this is kind of value takes the keyword `NA`" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "text/html": [ "<NA>" ], "text/latex": [ "" ], "text/markdown": [ "<NA>" ], "text/plain": [ "[1] NA" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "NA" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "*No value*. It takes the keyword `NULL` in R and it asserts that the variable genuinely has no value whatsoever. " ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "NULL" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "NULL" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Resources for R\n", "\n", "- [Base R cheatsheet](https://iqss.github.io/dss-workshops/R/Rintro/base-r-cheat-sheet.pdf)" ] } ], "metadata": { "anaconda-cloud": "", "celltoolbar": "Tags", "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.6.1" } }, "nbformat": 4, "nbformat_minor": 1 }