Skip to content

Instantly share code, notes, and snippets.

@QuLogic
Last active December 17, 2015 21:44
Show Gist options
  • Save QuLogic/c65772479f6101393fc3 to your computer and use it in GitHub Desktop.
Save QuLogic/c65772479f6101393fc3 to your computer and use it in GitHub Desktop.
R/Pandas Introduction
Display the source blob
Display the rendered blob
Raw
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Introduction to R via data wrangling\n",
"* Luke Johnston, Nutritional Sciences (epidemiology)\n",
"* July 23, 2015\n",
"* https://uoftcoders.github.io/studyGroup/lessons/introR/lesson/"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This is a brief introduction to R, focussing on data wrangling using\n",
"`dplyr` and `tidyr` packages and generating reproducible documents\n",
"using `knitr` and `rmarkdown` packages.\n",
"\n",
"You **don't need to read all of this** for the session. It's more of\n",
"a **resource and reference**.\n",
"\n",
"R is a statistical computing environment to analyze data and write\n",
"programs. The strength of R comes from:\n",
"\n",
"* It being developed by statisticians to do statistical analysis\n",
"* Its graphic capacities are top-quality\n",
"* It has excellent resources for creating reproducible documents.\n",
"* Its extensive and active community of users for doing statistical\n",
" work:\n",
" - R is the top tag in the\n",
" [StackExchange CrossValidated site](stats.stackexchange.com/tags)\n",
" for statistical questions\n",
" - There are more than 6000 packages on\n",
" [CRAN](https://cran.r-project.org/web/packages/) that stores all\n",
" R packages (and installing these packages is straight-forward),\n",
" from the obscure and cutting-edge statistical techniques to\n",
" plotting to data wrangling.\n",
"\n",
"I should mention a quick caveat. While R is a general-purpose\n",
"programming language, it works a bit differently from other languages\n",
"such as Python (it was developed by statisticians after all!). As\n",
"such, programming in R may not be as intuitive, powerful, or easy as\n",
"it may be in Python (though it can be done), especially if you come\n",
"from a computer science background. If your work involves a lot of\n",
"programming, I would recommend Python as your main tool. *However*,\n",
"it never hurts to learn more than one language, especially as R is\n",
"great for data analysis and plotting.\n",
"\n",
"Ok, firstly, I've made this session with some assumptions (see the\n",
"[slides.html](./slides.html)) file. Briefly I'm assuming you want to\n",
"use R for statistical analysis, plotting, and/or writing up reports.\n",
"I'm using R Markdown to show how to write up documents with R code and\n",
"since getting the data into an analyzable form is the hardest part of\n",
"an analysis, I'm using packages specific to that task.\n",
"\n",
"While you can create functions in R, I won't be going over them. A\n",
"great resource for R functions is [this page from Hadley Wickham's\n",
"'Advanced R' book](http://adv-r.had.co.nz/Functions.html)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Import/export your data\n",
"\n",
"You'll need to import your data into R to analyze it. I'm assuming\n",
"the data is already cleaned and ready for analysis. If at any time\n",
"you need help with a command, use the `?` command, appended with the\n",
"command of interest (eg. `?write.csv`). R comes with many internal\n",
"datasets that you can practice on. The one I'm going to use is the\n",
"`swiss` dataset."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<table>\n",
"<thead><tr><th></th><th scope=col>Fertility</th><th scope=col>Agriculture</th><th scope=col>Examination</th><th scope=col>Education</th><th scope=col>Catholic</th><th scope=col>Infant.Mortality</th></tr></thead>\n",
"<tbody>\n",
"\t<tr><th scope=row>Courtelary</th><td>80.2</td><td>17</td><td>15</td><td>12</td><td>9.96</td><td>22.2</td></tr>\n",
"\t<tr><th scope=row>Delemont</th><td>83.1</td><td>45.1</td><td>6</td><td>9</td><td>84.84</td><td>22.2</td></tr>\n",
"\t<tr><th scope=row>Franches-Mnt</th><td>92.5</td><td>39.7</td><td>5</td><td>5</td><td>93.4</td><td>20.2</td></tr>\n",
"\t<tr><th scope=row>Moutier</th><td>85.8</td><td>36.5</td><td>12</td><td>7</td><td>33.77</td><td>20.3</td></tr>\n",
"\t<tr><th scope=row>Neuveville</th><td>76.9</td><td>43.5</td><td>17</td><td>15</td><td>5.16</td><td>20.6</td></tr>\n",
"\t<tr><th scope=row>Porrentruy</th><td>76.1</td><td>35.3</td><td>9</td><td>7</td><td>90.57</td><td>26.6</td></tr>\n",
"\t<tr><th scope=row>Broye</th><td>83.8</td><td>70.2</td><td>16</td><td>7</td><td>92.85</td><td>23.6</td></tr>\n",
"\t<tr><th scope=row>Glane</th><td>92.4</td><td>67.8</td><td>14</td><td>8</td><td>97.16</td><td>24.9</td></tr>\n",
"\t<tr><th scope=row>Gruyere</th><td>82.4</td><td>53.3</td><td>12</td><td>7</td><td>97.67</td><td>21</td></tr>\n",
"\t<tr><th scope=row>Sarine</th><td>82.9</td><td>45.2</td><td>16</td><td>13</td><td>91.38</td><td>24.4</td></tr>\n",
"\t<tr><th scope=row>Veveyse</th><td>87.1</td><td>64.5</td><td>14</td><td>6</td><td>98.61</td><td>24.5</td></tr>\n",
"\t<tr><th scope=row>Aigle</th><td>64.1</td><td>62</td><td>21</td><td>12</td><td>8.52</td><td>16.5</td></tr>\n",
"\t<tr><th scope=row>Aubonne</th><td>66.9</td><td>67.5</td><td>14</td><td>7</td><td>2.27</td><td>19.1</td></tr>\n",
"\t<tr><th scope=row>Avenches</th><td>68.9</td><td>60.7</td><td>19</td><td>12</td><td>4.43</td><td>22.7</td></tr>\n",
"\t<tr><th scope=row>Cossonay</th><td>61.7</td><td>69.3</td><td>22</td><td>5</td><td>2.82</td><td>18.7</td></tr>\n",
"\t<tr><th scope=row>Echallens</th><td>68.3</td><td>72.6</td><td>18</td><td>2</td><td>24.2</td><td>21.2</td></tr>\n",
"\t<tr><th scope=row>Grandson</th><td>71.7</td><td>34</td><td>17</td><td>8</td><td>3.3</td><td>20</td></tr>\n",
"\t<tr><th scope=row>Lausanne</th><td>55.7</td><td>19.4</td><td>26</td><td>28</td><td>12.11</td><td>20.2</td></tr>\n",
"\t<tr><th scope=row>La Vallee</th><td>54.3</td><td>15.2</td><td>31</td><td>20</td><td>2.15</td><td>10.8</td></tr>\n",
"\t<tr><th scope=row>Lavaux</th><td>65.1</td><td>73</td><td>19</td><td>9</td><td>2.84</td><td>20</td></tr>\n",
"\t<tr><th scope=row>Morges</th><td>65.5</td><td>59.8</td><td>22</td><td>10</td><td>5.23</td><td>18</td></tr>\n",
"\t<tr><th scope=row>Moudon</th><td>65</td><td>55.1</td><td>14</td><td>3</td><td>4.52</td><td>22.4</td></tr>\n",
"\t<tr><th scope=row>Nyone</th><td>56.6</td><td>50.9</td><td>22</td><td>12</td><td>15.14</td><td>16.7</td></tr>\n",
"\t<tr><th scope=row>Orbe</th><td>57.4</td><td>54.1</td><td>20</td><td>6</td><td>4.2</td><td>15.3</td></tr>\n",
"\t<tr><th scope=row>Oron</th><td>72.5</td><td>71.2</td><td>12</td><td>1</td><td>2.4</td><td>21</td></tr>\n",
"\t<tr><th scope=row>Payerne</th><td>74.2</td><td>58.1</td><td>14</td><td>8</td><td>5.23</td><td>23.8</td></tr>\n",
"\t<tr><th scope=row>Paysd'enhaut</th><td>72</td><td>63.5</td><td>6</td><td>3</td><td>2.56</td><td>18</td></tr>\n",
"\t<tr><th scope=row>Rolle</th><td>60.5</td><td>60.8</td><td>16</td><td>10</td><td>7.72</td><td>16.3</td></tr>\n",
"\t<tr><th scope=row>Vevey</th><td>58.3</td><td>26.8</td><td>25</td><td>19</td><td>18.46</td><td>20.9</td></tr>\n",
"\t<tr><th scope=row>Yverdon</th><td>65.4</td><td>49.5</td><td>15</td><td>8</td><td>6.1</td><td>22.5</td></tr>\n",
"\t<tr><th scope=row>Conthey</th><td>75.5</td><td>85.9</td><td>3</td><td>2</td><td>99.71</td><td>15.1</td></tr>\n",
"\t<tr><th scope=row>Entremont</th><td>69.3</td><td>84.9</td><td>7</td><td>6</td><td>99.68</td><td>19.8</td></tr>\n",
"\t<tr><th scope=row>Herens</th><td>77.3</td><td>89.7</td><td>5</td><td>2</td><td>100</td><td>18.3</td></tr>\n",
"\t<tr><th scope=row>Martigwy</th><td>70.5</td><td>78.2</td><td>12</td><td>6</td><td>98.96</td><td>19.4</td></tr>\n",
"\t<tr><th scope=row>Monthey</th><td>79.4</td><td>64.9</td><td>7</td><td>3</td><td>98.22</td><td>20.2</td></tr>\n",
"\t<tr><th scope=row>St Maurice</th><td>65</td><td>75.9</td><td>9</td><td>9</td><td>99.06</td><td>17.8</td></tr>\n",
"\t<tr><th scope=row>Sierre</th><td>92.2</td><td>84.6</td><td>3</td><td>3</td><td>99.46</td><td>16.3</td></tr>\n",
"\t<tr><th scope=row>Sion</th><td>79.3</td><td>63.1</td><td>13</td><td>13</td><td>96.83</td><td>18.1</td></tr>\n",
"\t<tr><th scope=row>Boudry</th><td>70.4</td><td>38.4</td><td>26</td><td>12</td><td>5.62</td><td>20.3</td></tr>\n",
"\t<tr><th scope=row>La Chauxdfnd</th><td>65.7</td><td>7.7</td><td>29</td><td>11</td><td>13.79</td><td>20.5</td></tr>\n",
"\t<tr><th scope=row>Le Locle</th><td>72.7</td><td>16.7</td><td>22</td><td>13</td><td>11.22</td><td>18.9</td></tr>\n",
"\t<tr><th scope=row>Neuchatel</th><td>64.4</td><td>17.6</td><td>35</td><td>32</td><td>16.92</td><td>23</td></tr>\n",
"\t<tr><th scope=row>Val de Ruz</th><td>77.6</td><td>37.6</td><td>15</td><td>7</td><td>4.97</td><td>20</td></tr>\n",
"\t<tr><th scope=row>ValdeTravers</th><td>67.6</td><td>18.7</td><td>25</td><td>7</td><td>8.65</td><td>19.5</td></tr>\n",
"\t<tr><th scope=row>V. De Geneve</th><td>35</td><td>1.2</td><td>37</td><td>53</td><td>42.34</td><td>18</td></tr>\n",
"\t<tr><th scope=row>Rive Droite</th><td>44.7</td><td>46.6</td><td>16</td><td>29</td><td>50.43</td><td>18.2</td></tr>\n",
"\t<tr><th scope=row>Rive Gauche</th><td>42.8</td><td>27.7</td><td>22</td><td>29</td><td>58.33</td><td>19.3</td></tr>\n",
"</tbody>\n",
"</table>\n"
],
"text/latex": [
"\\begin{tabular}{r|llllll}\n",
" & Fertility & Agriculture & Examination & Education & Catholic & Infant.Mortality\\\\\n",
"\\hline\n",
"\tCourtelary & 80.2 & 17 & 15 & 12 & 9.96 & 22.2\\\\\n",
"\tDelemont & 83.1 & 45.1 & 6 & 9 & 84.84 & 22.2\\\\\n",
"\tFranches-Mnt & 92.5 & 39.7 & 5 & 5 & 93.4 & 20.2\\\\\n",
"\tMoutier & 85.8 & 36.5 & 12 & 7 & 33.77 & 20.3\\\\\n",
"\tNeuveville & 76.9 & 43.5 & 17 & 15 & 5.16 & 20.6\\\\\n",
"\tPorrentruy & 76.1 & 35.3 & 9 & 7 & 90.57 & 26.6\\\\\n",
"\tBroye & 83.8 & 70.2 & 16 & 7 & 92.85 & 23.6\\\\\n",
"\tGlane & 92.4 & 67.8 & 14 & 8 & 97.16 & 24.9\\\\\n",
"\tGruyere & 82.4 & 53.3 & 12 & 7 & 97.67 & 21\\\\\n",
"\tSarine & 82.9 & 45.2 & 16 & 13 & 91.38 & 24.4\\\\\n",
"\tVeveyse & 87.1 & 64.5 & 14 & 6 & 98.61 & 24.5\\\\\n",
"\tAigle & 64.1 & 62 & 21 & 12 & 8.52 & 16.5\\\\\n",
"\tAubonne & 66.9 & 67.5 & 14 & 7 & 2.27 & 19.1\\\\\n",
"\tAvenches & 68.9 & 60.7 & 19 & 12 & 4.43 & 22.7\\\\\n",
"\tCossonay & 61.7 & 69.3 & 22 & 5 & 2.82 & 18.7\\\\\n",
"\tEchallens & 68.3 & 72.6 & 18 & 2 & 24.2 & 21.2\\\\\n",
"\tGrandson & 71.7 & 34 & 17 & 8 & 3.3 & 20\\\\\n",
"\tLausanne & 55.7 & 19.4 & 26 & 28 & 12.11 & 20.2\\\\\n",
"\tLa Vallee & 54.3 & 15.2 & 31 & 20 & 2.15 & 10.8\\\\\n",
"\tLavaux & 65.1 & 73 & 19 & 9 & 2.84 & 20\\\\\n",
"\tMorges & 65.5 & 59.8 & 22 & 10 & 5.23 & 18\\\\\n",
"\tMoudon & 65 & 55.1 & 14 & 3 & 4.52 & 22.4\\\\\n",
"\tNyone & 56.6 & 50.9 & 22 & 12 & 15.14 & 16.7\\\\\n",
"\tOrbe & 57.4 & 54.1 & 20 & 6 & 4.2 & 15.3\\\\\n",
"\tOron & 72.5 & 71.2 & 12 & 1 & 2.4 & 21\\\\\n",
"\tPayerne & 74.2 & 58.1 & 14 & 8 & 5.23 & 23.8\\\\\n",
"\tPaysd'enhaut & 72 & 63.5 & 6 & 3 & 2.56 & 18\\\\\n",
"\tRolle & 60.5 & 60.8 & 16 & 10 & 7.72 & 16.3\\\\\n",
"\tVevey & 58.3 & 26.8 & 25 & 19 & 18.46 & 20.9\\\\\n",
"\tYverdon & 65.4 & 49.5 & 15 & 8 & 6.1 & 22.5\\\\\n",
"\tConthey & 75.5 & 85.9 & 3 & 2 & 99.71 & 15.1\\\\\n",
"\tEntremont & 69.3 & 84.9 & 7 & 6 & 99.68 & 19.8\\\\\n",
"\tHerens & 77.3 & 89.7 & 5 & 2 & 100 & 18.3\\\\\n",
"\tMartigwy & 70.5 & 78.2 & 12 & 6 & 98.96 & 19.4\\\\\n",
"\tMonthey & 79.4 & 64.9 & 7 & 3 & 98.22 & 20.2\\\\\n",
"\tSt Maurice & 65 & 75.9 & 9 & 9 & 99.06 & 17.8\\\\\n",
"\tSierre & 92.2 & 84.6 & 3 & 3 & 99.46 & 16.3\\\\\n",
"\tSion & 79.3 & 63.1 & 13 & 13 & 96.83 & 18.1\\\\\n",
"\tBoudry & 70.4 & 38.4 & 26 & 12 & 5.62 & 20.3\\\\\n",
"\tLa Chauxdfnd & 65.7 & 7.7 & 29 & 11 & 13.79 & 20.5\\\\\n",
"\tLe Locle & 72.7 & 16.7 & 22 & 13 & 11.22 & 18.9\\\\\n",
"\tNeuchatel & 64.4 & 17.6 & 35 & 32 & 16.92 & 23\\\\\n",
"\tVal de Ruz & 77.6 & 37.6 & 15 & 7 & 4.97 & 20\\\\\n",
"\tValdeTravers & 67.6 & 18.7 & 25 & 7 & 8.65 & 19.5\\\\\n",
"\tV. De Geneve & 35 & 1.2 & 37 & 53 & 42.34 & 18\\\\\n",
"\tRive Droite & 44.7 & 46.6 & 16 & 29 & 50.43 & 18.2\\\\\n",
"\tRive Gauche & 42.8 & 27.7 & 22 & 29 & 58.33 & 19.3\\\\\n",
"\\end{tabular}\n"
],
"text/plain": [
" Fertility Agriculture Examination Education Catholic\n",
"Courtelary 80.2 17.0 15 12 9.96\n",
"Delemont 83.1 45.1 6 9 84.84\n",
"Franches-Mnt 92.5 39.7 5 5 93.40\n",
"Moutier 85.8 36.5 12 7 33.77\n",
"Neuveville 76.9 43.5 17 15 5.16\n",
"Porrentruy 76.1 35.3 9 7 90.57\n",
"Broye 83.8 70.2 16 7 92.85\n",
"Glane 92.4 67.8 14 8 97.16\n",
"Gruyere 82.4 53.3 12 7 97.67\n",
"Sarine 82.9 45.2 16 13 91.38\n",
"Veveyse 87.1 64.5 14 6 98.61\n",
"Aigle 64.1 62.0 21 12 8.52\n",
"Aubonne 66.9 67.5 14 7 2.27\n",
"Avenches 68.9 60.7 19 12 4.43\n",
"Cossonay 61.7 69.3 22 5 2.82\n",
"Echallens 68.3 72.6 18 2 24.20\n",
"Grandson 71.7 34.0 17 8 3.30\n",
"Lausanne 55.7 19.4 26 28 12.11\n",
"La Vallee 54.3 15.2 31 20 2.15\n",
"Lavaux 65.1 73.0 19 9 2.84\n",
"Morges 65.5 59.8 22 10 5.23\n",
"Moudon 65.0 55.1 14 3 4.52\n",
"Nyone 56.6 50.9 22 12 15.14\n",
"Orbe 57.4 54.1 20 6 4.20\n",
"Oron 72.5 71.2 12 1 2.40\n",
"Payerne 74.2 58.1 14 8 5.23\n",
"Paysd'enhaut 72.0 63.5 6 3 2.56\n",
"Rolle 60.5 60.8 16 10 7.72\n",
"Vevey 58.3 26.8 25 19 18.46\n",
"Yverdon 65.4 49.5 15 8 6.10\n",
"Conthey 75.5 85.9 3 2 99.71\n",
"Entremont 69.3 84.9 7 6 99.68\n",
"Herens 77.3 89.7 5 2 100.00\n",
"Martigwy 70.5 78.2 12 6 98.96\n",
"Monthey 79.4 64.9 7 3 98.22\n",
"St Maurice 65.0 75.9 9 9 99.06\n",
"Sierre 92.2 84.6 3 3 99.46\n",
"Sion 79.3 63.1 13 13 96.83\n",
"Boudry 70.4 38.4 26 12 5.62\n",
"La Chauxdfnd 65.7 7.7 29 11 13.79\n",
"Le Locle 72.7 16.7 22 13 11.22\n",
"Neuchatel 64.4 17.6 35 32 16.92\n",
"Val de Ruz 77.6 37.6 15 7 4.97\n",
"ValdeTravers 67.6 18.7 25 7 8.65\n",
"V. De Geneve 35.0 1.2 37 53 42.34\n",
"Rive Droite 44.7 46.6 16 29 50.43\n",
"Rive Gauche 42.8 27.7 22 29 58.33\n",
" Infant.Mortality\n",
"Courtelary 22.2\n",
"Delemont 22.2\n",
"Franches-Mnt 20.2\n",
"Moutier 20.3\n",
"Neuveville 20.6\n",
"Porrentruy 26.6\n",
"Broye 23.6\n",
"Glane 24.9\n",
"Gruyere 21.0\n",
"Sarine 24.4\n",
"Veveyse 24.5\n",
"Aigle 16.5\n",
"Aubonne 19.1\n",
"Avenches 22.7\n",
"Cossonay 18.7\n",
"Echallens 21.2\n",
"Grandson 20.0\n",
"Lausanne 20.2\n",
"La Vallee 10.8\n",
"Lavaux 20.0\n",
"Morges 18.0\n",
"Moudon 22.4\n",
"Nyone 16.7\n",
"Orbe 15.3\n",
"Oron 21.0\n",
"Payerne 23.8\n",
"Paysd'enhaut 18.0\n",
"Rolle 16.3\n",
"Vevey 20.9\n",
"Yverdon 22.5\n",
"Conthey 15.1\n",
"Entremont 19.8\n",
"Herens 18.3\n",
"Martigwy 19.4\n",
"Monthey 20.2\n",
"St Maurice 17.8\n",
"Sierre 16.3\n",
"Sion 18.1\n",
"Boudry 20.3\n",
"La Chauxdfnd 20.5\n",
"Le Locle 18.9\n",
"Neuchatel 23.0\n",
"Val de Ruz 20.0\n",
"ValdeTravers 19.5\n",
"V. De Geneve 18.0\n",
"Rive Droite 18.2\n",
"Rive Gauche 19.3"
]
},
"execution_count": 1,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"swiss"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# Export\n",
"write.csv(swiss, file='swiss.csv')"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# Import\n",
"ds <- read.csv('swiss.csv')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Viewing your data\n",
"\n",
"R has several very useful and easy tools for quickly viewing your\n",
"data. `head()` shows the first few rows of a data.frame (a structure\n",
"for storing data that can include numbers, integers, factors, strings,\n",
"etc). `names()` shows the column names. `str()` shows the structure,\n",
"such as what the object is, and its contents. `summary()` shows a\n",
"quick description of the summary statistics (means, median, frequency)\n",
"for each of your columns. `class()` is like `str()` but only shows\n",
"the top level name of the object, so eg. while a data.frame contains\n",
"multiple columns that `str()` would show, `class()` would only show\n",
"that the object is a \"data.frame\"."
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<table>\n",
"<thead><tr><th></th><th scope=col>X</th><th scope=col>Fertility</th><th scope=col>Agriculture</th><th scope=col>Examination</th><th scope=col>Education</th><th scope=col>Catholic</th><th scope=col>Infant.Mortality</th></tr></thead>\n",
"<tbody>\n",
"\t<tr><th scope=row>1</th><td>Courtelary</td><td>80.2</td><td>17</td><td>15</td><td>12</td><td>9.96</td><td>22.2</td></tr>\n",
"\t<tr><th scope=row>2</th><td>Delemont</td><td>83.1</td><td>45.1</td><td>6</td><td>9</td><td>84.84</td><td>22.2</td></tr>\n",
"\t<tr><th scope=row>3</th><td>Franches-Mnt</td><td>92.5</td><td>39.7</td><td>5</td><td>5</td><td>93.4</td><td>20.2</td></tr>\n",
"\t<tr><th scope=row>4</th><td>Moutier</td><td>85.8</td><td>36.5</td><td>12</td><td>7</td><td>33.77</td><td>20.3</td></tr>\n",
"\t<tr><th scope=row>5</th><td>Neuveville</td><td>76.9</td><td>43.5</td><td>17</td><td>15</td><td>5.16</td><td>20.6</td></tr>\n",
"\t<tr><th scope=row>6</th><td>Porrentruy</td><td>76.1</td><td>35.3</td><td>9</td><td>7</td><td>90.57</td><td>26.6</td></tr>\n",
"</tbody>\n",
"</table>\n"
],
"text/latex": [
"\\begin{tabular}{r|lllllll}\n",
" & X & Fertility & Agriculture & Examination & Education & Catholic & Infant.Mortality\\\\\n",
"\\hline\n",
"\t1 & Courtelary & 80.2 & 17 & 15 & 12 & 9.96 & 22.2\\\\\n",
"\t2 & Delemont & 83.1 & 45.1 & 6 & 9 & 84.84 & 22.2\\\\\n",
"\t3 & Franches-Mnt & 92.5 & 39.7 & 5 & 5 & 93.4 & 20.2\\\\\n",
"\t4 & Moutier & 85.8 & 36.5 & 12 & 7 & 33.77 & 20.3\\\\\n",
"\t5 & Neuveville & 76.9 & 43.5 & 17 & 15 & 5.16 & 20.6\\\\\n",
"\t6 & Porrentruy & 76.1 & 35.3 & 9 & 7 & 90.57 & 26.6\\\\\n",
"\\end{tabular}\n"
],
"text/plain": [
" X Fertility Agriculture Examination Education Catholic\n",
"1 Courtelary 80.2 17.0 15 12 9.96\n",
"2 Delemont 83.1 45.1 6 9 84.84\n",
"3 Franches-Mnt 92.5 39.7 5 5 93.40\n",
"4 Moutier 85.8 36.5 12 7 33.77\n",
"5 Neuveville 76.9 43.5 17 15 5.16\n",
"6 Porrentruy 76.1 35.3 9 7 90.57\n",
" Infant.Mortality\n",
"1 22.2\n",
"2 22.2\n",
"3 20.2\n",
"4 20.3\n",
"5 20.6\n",
"6 26.6"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"head(ds)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<ol class=list-inline>\n",
"\t<li>'X'</li>\n",
"\t<li>'Fertility'</li>\n",
"\t<li>'Agriculture'</li>\n",
"\t<li>'Examination'</li>\n",
"\t<li>'Education'</li>\n",
"\t<li>'Catholic'</li>\n",
"\t<li>'Infant.Mortality'</li>\n",
"</ol>\n"
],
"text/latex": [
"\\begin{enumerate*}\n",
"\\item 'X'\n",
"\\item 'Fertility'\n",
"\\item 'Agriculture'\n",
"\\item 'Examination'\n",
"\\item 'Education'\n",
"\\item 'Catholic'\n",
"\\item 'Infant.Mortality'\n",
"\\end{enumerate*}\n"
],
"text/markdown": [
"1. 'X'\n",
"2. 'Fertility'\n",
"3. 'Agriculture'\n",
"4. 'Examination'\n",
"5. 'Education'\n",
"6. 'Catholic'\n",
"7. 'Infant.Mortality'\n",
"\n",
"\n"
],
"text/plain": [
"[1] \"X\" \"Fertility\" \"Agriculture\" \"Examination\" \n",
"[5] \"Education\" \"Catholic\" \"Infant.Mortality\""
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"names(ds)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"'data.frame':\t47 obs. of 7 variables:\n",
" $ X : Factor w/ 47 levels \"Aigle\",\"Aubonne\",..: 8 9 12 26 28 34 5 13 15 38 ...\n",
" $ Fertility : num 80.2 83.1 92.5 85.8 76.9 76.1 83.8 92.4 82.4 82.9 ...\n",
" $ Agriculture : num 17 45.1 39.7 36.5 43.5 35.3 70.2 67.8 53.3 45.2 ...\n",
" $ Examination : int 15 6 5 12 17 9 16 14 12 16 ...\n",
" $ Education : int 12 9 5 7 15 7 7 8 7 13 ...\n",
" $ Catholic : num 9.96 84.84 93.4 33.77 5.16 ...\n",
" $ Infant.Mortality: num 22.2 22.2 20.2 20.3 20.6 26.6 23.6 24.9 21 24.4 ...\n"
]
}
],
"source": [
"str(ds)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
" X Fertility Agriculture Examination Education \n",
" Aigle : 1 Min. :35.00 Min. : 1.20 Min. : 3.00 Min. : 1.00 \n",
" Aubonne : 1 1st Qu.:64.70 1st Qu.:35.90 1st Qu.:12.00 1st Qu.: 6.00 \n",
" Avenches: 1 Median :70.40 Median :54.10 Median :16.00 Median : 8.00 \n",
" Boudry : 1 Mean :70.14 Mean :50.66 Mean :16.49 Mean :10.98 \n",
" Broye : 1 3rd Qu.:78.45 3rd Qu.:67.65 3rd Qu.:22.00 3rd Qu.:12.00 \n",
" Conthey : 1 Max. :92.50 Max. :89.70 Max. :37.00 Max. :53.00 \n",
" (Other) :41 \n",
" Catholic Infant.Mortality\n",
" Min. : 2.150 Min. :10.80 \n",
" 1st Qu.: 5.195 1st Qu.:18.15 \n",
" Median : 15.140 Median :20.00 \n",
" Mean : 41.144 Mean :19.94 \n",
" 3rd Qu.: 93.125 3rd Qu.:21.70 \n",
" Max. :100.000 Max. :26.60 \n",
" "
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"summary(ds)"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"'data.frame'"
],
"text/latex": [
"'data.frame'"
],
"text/markdown": [
"'data.frame'"
],
"text/plain": [
"[1] \"data.frame\""
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"class(ds)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Wrangling your data\n",
"\n",
"Data wrangling is a bit tedious in base R. So I'm using two packages\n",
"designed to make this easier. Load packages by using the `library()`\n",
"function. `dplyr` comes with a `%>%` pipe function (via the\n",
"`magrittr` package), which works similar to how the Bash shell `|`\n",
"pipe works. The command on the right-hand side takes the output from\n",
"the command on the left-hand side, just like how a plumbing pipe works\n",
"for water.\n",
"\n",
"The four lines of code below using `tbl_df` are all the same. The `.`\n",
"object represents the output from the pipe, but it doesn't have to be\n",
"used as using `%>%` implies also using `.`. `tbl_df` makes the object\n",
"into a `tbl` class, making printing of the output nicer."
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"Attaching package: ‘dplyr’\n",
"\n",
"The following objects are masked from ‘package:stats’:\n",
"\n",
" filter, lag\n",
"\n",
"The following objects are masked from ‘package:base’:\n",
"\n",
" intersect, setdiff, setequal, union\n",
"\n"
]
}
],
"source": [
"library(dplyr)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<table>\n",
"<thead><tr><th></th><th scope=col>X</th><th scope=col>Fertility</th><th scope=col>Agriculture</th><th scope=col>Examination</th><th scope=col>Education</th><th scope=col>Catholic</th><th scope=col>Infant.Mortality</th></tr></thead>\n",
"<tbody>\n",
"\t<tr><th scope=row>1</th><td>Courtelary</td><td>80.2</td><td>17</td><td>15</td><td>12</td><td>9.96</td><td>22.2</td></tr>\n",
"\t<tr><th scope=row>2</th><td>Delemont</td><td>83.1</td><td>45.1</td><td>6</td><td>9</td><td>84.84</td><td>22.2</td></tr>\n",
"\t<tr><th scope=row>3</th><td>Franches-Mnt</td><td>92.5</td><td>39.7</td><td>5</td><td>5</td><td>93.4</td><td>20.2</td></tr>\n",
"\t<tr><th scope=row>4</th><td>Moutier</td><td>85.8</td><td>36.5</td><td>12</td><td>7</td><td>33.77</td><td>20.3</td></tr>\n",
"\t<tr><th scope=row>5</th><td>Neuveville</td><td>76.9</td><td>43.5</td><td>17</td><td>15</td><td>5.16</td><td>20.6</td></tr>\n",
"\t<tr><th scope=row>6</th><td>Porrentruy</td><td>76.1</td><td>35.3</td><td>9</td><td>7</td><td>90.57</td><td>26.6</td></tr>\n",
"\t<tr><th scope=row>7</th><td>Broye</td><td>83.8</td><td>70.2</td><td>16</td><td>7</td><td>92.85</td><td>23.6</td></tr>\n",
"\t<tr><th scope=row>8</th><td>Glane</td><td>92.4</td><td>67.8</td><td>14</td><td>8</td><td>97.16</td><td>24.9</td></tr>\n",
"\t<tr><th scope=row>9</th><td>Gruyere</td><td>82.4</td><td>53.3</td><td>12</td><td>7</td><td>97.67</td><td>21</td></tr>\n",
"\t<tr><th scope=row>10</th><td>Sarine</td><td>82.9</td><td>45.2</td><td>16</td><td>13</td><td>91.38</td><td>24.4</td></tr>\n",
"\t<tr><th scope=row>11</th><td>Veveyse</td><td>87.1</td><td>64.5</td><td>14</td><td>6</td><td>98.61</td><td>24.5</td></tr>\n",
"\t<tr><th scope=row>12</th><td>Aigle</td><td>64.1</td><td>62</td><td>21</td><td>12</td><td>8.52</td><td>16.5</td></tr>\n",
"\t<tr><th scope=row>13</th><td>Aubonne</td><td>66.9</td><td>67.5</td><td>14</td><td>7</td><td>2.27</td><td>19.1</td></tr>\n",
"\t<tr><th scope=row>14</th><td>Avenches</td><td>68.9</td><td>60.7</td><td>19</td><td>12</td><td>4.43</td><td>22.7</td></tr>\n",
"\t<tr><th scope=row>15</th><td>Cossonay</td><td>61.7</td><td>69.3</td><td>22</td><td>5</td><td>2.82</td><td>18.7</td></tr>\n",
"\t<tr><th scope=row>16</th><td>Echallens</td><td>68.3</td><td>72.6</td><td>18</td><td>2</td><td>24.2</td><td>21.2</td></tr>\n",
"\t<tr><th scope=row>17</th><td>Grandson</td><td>71.7</td><td>34</td><td>17</td><td>8</td><td>3.3</td><td>20</td></tr>\n",
"\t<tr><th scope=row>18</th><td>Lausanne</td><td>55.7</td><td>19.4</td><td>26</td><td>28</td><td>12.11</td><td>20.2</td></tr>\n",
"\t<tr><th scope=row>19</th><td>La Vallee</td><td>54.3</td><td>15.2</td><td>31</td><td>20</td><td>2.15</td><td>10.8</td></tr>\n",
"\t<tr><th scope=row>20</th><td>Lavaux</td><td>65.1</td><td>73</td><td>19</td><td>9</td><td>2.84</td><td>20</td></tr>\n",
"\t<tr><th scope=row>21</th><td>Morges</td><td>65.5</td><td>59.8</td><td>22</td><td>10</td><td>5.23</td><td>18</td></tr>\n",
"\t<tr><th scope=row>22</th><td>Moudon</td><td>65</td><td>55.1</td><td>14</td><td>3</td><td>4.52</td><td>22.4</td></tr>\n",
"\t<tr><th scope=row>23</th><td>Nyone</td><td>56.6</td><td>50.9</td><td>22</td><td>12</td><td>15.14</td><td>16.7</td></tr>\n",
"\t<tr><th scope=row>24</th><td>Orbe</td><td>57.4</td><td>54.1</td><td>20</td><td>6</td><td>4.2</td><td>15.3</td></tr>\n",
"\t<tr><th scope=row>25</th><td>Oron</td><td>72.5</td><td>71.2</td><td>12</td><td>1</td><td>2.4</td><td>21</td></tr>\n",
"\t<tr><th scope=row>26</th><td>Payerne</td><td>74.2</td><td>58.1</td><td>14</td><td>8</td><td>5.23</td><td>23.8</td></tr>\n",
"\t<tr><th scope=row>27</th><td>Paysd'enhaut</td><td>72</td><td>63.5</td><td>6</td><td>3</td><td>2.56</td><td>18</td></tr>\n",
"\t<tr><th scope=row>28</th><td>Rolle</td><td>60.5</td><td>60.8</td><td>16</td><td>10</td><td>7.72</td><td>16.3</td></tr>\n",
"\t<tr><th scope=row>29</th><td>Vevey</td><td>58.3</td><td>26.8</td><td>25</td><td>19</td><td>18.46</td><td>20.9</td></tr>\n",
"\t<tr><th scope=row>30</th><td>Yverdon</td><td>65.4</td><td>49.5</td><td>15</td><td>8</td><td>6.1</td><td>22.5</td></tr>\n",
"\t<tr><th scope=row>31</th><td>Conthey</td><td>75.5</td><td>85.9</td><td>3</td><td>2</td><td>99.71</td><td>15.1</td></tr>\n",
"\t<tr><th scope=row>32</th><td>Entremont</td><td>69.3</td><td>84.9</td><td>7</td><td>6</td><td>99.68</td><td>19.8</td></tr>\n",
"\t<tr><th scope=row>33</th><td>Herens</td><td>77.3</td><td>89.7</td><td>5</td><td>2</td><td>100</td><td>18.3</td></tr>\n",
"\t<tr><th scope=row>34</th><td>Martigwy</td><td>70.5</td><td>78.2</td><td>12</td><td>6</td><td>98.96</td><td>19.4</td></tr>\n",
"\t<tr><th scope=row>35</th><td>Monthey</td><td>79.4</td><td>64.9</td><td>7</td><td>3</td><td>98.22</td><td>20.2</td></tr>\n",
"\t<tr><th scope=row>36</th><td>St Maurice</td><td>65</td><td>75.9</td><td>9</td><td>9</td><td>99.06</td><td>17.8</td></tr>\n",
"\t<tr><th scope=row>37</th><td>Sierre</td><td>92.2</td><td>84.6</td><td>3</td><td>3</td><td>99.46</td><td>16.3</td></tr>\n",
"\t<tr><th scope=row>38</th><td>Sion</td><td>79.3</td><td>63.1</td><td>13</td><td>13</td><td>96.83</td><td>18.1</td></tr>\n",
"\t<tr><th scope=row>39</th><td>Boudry</td><td>70.4</td><td>38.4</td><td>26</td><td>12</td><td>5.62</td><td>20.3</td></tr>\n",
"\t<tr><th scope=row>40</th><td>La Chauxdfnd</td><td>65.7</td><td>7.7</td><td>29</td><td>11</td><td>13.79</td><td>20.5</td></tr>\n",
"\t<tr><th scope=row>41</th><td>Le Locle</td><td>72.7</td><td>16.7</td><td>22</td><td>13</td><td>11.22</td><td>18.9</td></tr>\n",
"\t<tr><th scope=row>42</th><td>Neuchatel</td><td>64.4</td><td>17.6</td><td>35</td><td>32</td><td>16.92</td><td>23</td></tr>\n",
"\t<tr><th scope=row>43</th><td>Val de Ruz</td><td>77.6</td><td>37.6</td><td>15</td><td>7</td><td>4.97</td><td>20</td></tr>\n",
"\t<tr><th scope=row>44</th><td>ValdeTravers</td><td>67.6</td><td>18.7</td><td>25</td><td>7</td><td>8.65</td><td>19.5</td></tr>\n",
"\t<tr><th scope=row>45</th><td>V. De Geneve</td><td>35</td><td>1.2</td><td>37</td><td>53</td><td>42.34</td><td>18</td></tr>\n",
"\t<tr><th scope=row>46</th><td>Rive Droite</td><td>44.7</td><td>46.6</td><td>16</td><td>29</td><td>50.43</td><td>18.2</td></tr>\n",
"\t<tr><th scope=row>47</th><td>Rive Gauche</td><td>42.8</td><td>27.7</td><td>22</td><td>29</td><td>58.33</td><td>19.3</td></tr>\n",
"</tbody>\n",
"</table>\n"
],
"text/latex": [
"\\begin{tabular}{r|lllllll}\n",
" & X & Fertility & Agriculture & Examination & Education & Catholic & Infant.Mortality\\\\\n",
"\\hline\n",
"\t1 & Courtelary & 80.2 & 17 & 15 & 12 & 9.96 & 22.2\\\\\n",
"\t2 & Delemont & 83.1 & 45.1 & 6 & 9 & 84.84 & 22.2\\\\\n",
"\t3 & Franches-Mnt & 92.5 & 39.7 & 5 & 5 & 93.4 & 20.2\\\\\n",
"\t4 & Moutier & 85.8 & 36.5 & 12 & 7 & 33.77 & 20.3\\\\\n",
"\t5 & Neuveville & 76.9 & 43.5 & 17 & 15 & 5.16 & 20.6\\\\\n",
"\t6 & Porrentruy & 76.1 & 35.3 & 9 & 7 & 90.57 & 26.6\\\\\n",
"\t7 & Broye & 83.8 & 70.2 & 16 & 7 & 92.85 & 23.6\\\\\n",
"\t8 & Glane & 92.4 & 67.8 & 14 & 8 & 97.16 & 24.9\\\\\n",
"\t9 & Gruyere & 82.4 & 53.3 & 12 & 7 & 97.67 & 21\\\\\n",
"\t10 & Sarine & 82.9 & 45.2 & 16 & 13 & 91.38 & 24.4\\\\\n",
"\t11 & Veveyse & 87.1 & 64.5 & 14 & 6 & 98.61 & 24.5\\\\\n",
"\t12 & Aigle & 64.1 & 62 & 21 & 12 & 8.52 & 16.5\\\\\n",
"\t13 & Aubonne & 66.9 & 67.5 & 14 & 7 & 2.27 & 19.1\\\\\n",
"\t14 & Avenches & 68.9 & 60.7 & 19 & 12 & 4.43 & 22.7\\\\\n",
"\t15 & Cossonay & 61.7 & 69.3 & 22 & 5 & 2.82 & 18.7\\\\\n",
"\t16 & Echallens & 68.3 & 72.6 & 18 & 2 & 24.2 & 21.2\\\\\n",
"\t17 & Grandson & 71.7 & 34 & 17 & 8 & 3.3 & 20\\\\\n",
"\t18 & Lausanne & 55.7 & 19.4 & 26 & 28 & 12.11 & 20.2\\\\\n",
"\t19 & La Vallee & 54.3 & 15.2 & 31 & 20 & 2.15 & 10.8\\\\\n",
"\t20 & Lavaux & 65.1 & 73 & 19 & 9 & 2.84 & 20\\\\\n",
"\t21 & Morges & 65.5 & 59.8 & 22 & 10 & 5.23 & 18\\\\\n",
"\t22 & Moudon & 65 & 55.1 & 14 & 3 & 4.52 & 22.4\\\\\n",
"\t23 & Nyone & 56.6 & 50.9 & 22 & 12 & 15.14 & 16.7\\\\\n",
"\t24 & Orbe & 57.4 & 54.1 & 20 & 6 & 4.2 & 15.3\\\\\n",
"\t25 & Oron & 72.5 & 71.2 & 12 & 1 & 2.4 & 21\\\\\n",
"\t26 & Payerne & 74.2 & 58.1 & 14 & 8 & 5.23 & 23.8\\\\\n",
"\t27 & Paysd'enhaut & 72 & 63.5 & 6 & 3 & 2.56 & 18\\\\\n",
"\t28 & Rolle & 60.5 & 60.8 & 16 & 10 & 7.72 & 16.3\\\\\n",
"\t29 & Vevey & 58.3 & 26.8 & 25 & 19 & 18.46 & 20.9\\\\\n",
"\t30 & Yverdon & 65.4 & 49.5 & 15 & 8 & 6.1 & 22.5\\\\\n",
"\t31 & Conthey & 75.5 & 85.9 & 3 & 2 & 99.71 & 15.1\\\\\n",
"\t32 & Entremont & 69.3 & 84.9 & 7 & 6 & 99.68 & 19.8\\\\\n",
"\t33 & Herens & 77.3 & 89.7 & 5 & 2 & 100 & 18.3\\\\\n",
"\t34 & Martigwy & 70.5 & 78.2 & 12 & 6 & 98.96 & 19.4\\\\\n",
"\t35 & Monthey & 79.4 & 64.9 & 7 & 3 & 98.22 & 20.2\\\\\n",
"\t36 & St Maurice & 65 & 75.9 & 9 & 9 & 99.06 & 17.8\\\\\n",
"\t37 & Sierre & 92.2 & 84.6 & 3 & 3 & 99.46 & 16.3\\\\\n",
"\t38 & Sion & 79.3 & 63.1 & 13 & 13 & 96.83 & 18.1\\\\\n",
"\t39 & Boudry & 70.4 & 38.4 & 26 & 12 & 5.62 & 20.3\\\\\n",
"\t40 & La Chauxdfnd & 65.7 & 7.7 & 29 & 11 & 13.79 & 20.5\\\\\n",
"\t41 & Le Locle & 72.7 & 16.7 & 22 & 13 & 11.22 & 18.9\\\\\n",
"\t42 & Neuchatel & 64.4 & 17.6 & 35 & 32 & 16.92 & 23\\\\\n",
"\t43 & Val de Ruz & 77.6 & 37.6 & 15 & 7 & 4.97 & 20\\\\\n",
"\t44 & ValdeTravers & 67.6 & 18.7 & 25 & 7 & 8.65 & 19.5\\\\\n",
"\t45 & V. De Geneve & 35 & 1.2 & 37 & 53 & 42.34 & 18\\\\\n",
"\t46 & Rive Droite & 44.7 & 46.6 & 16 & 29 & 50.43 & 18.2\\\\\n",
"\t47 & Rive Gauche & 42.8 & 27.7 & 22 & 29 & 58.33 & 19.3\\\\\n",
"\\end{tabular}\n"
],
"text/plain": [
"Source: local data frame [47 x 7]\n",
"\n",
" X Fertility Agriculture Examination Education Catholic\n",
" (fctr) (dbl) (dbl) (int) (int) (dbl)\n",
"1 Courtelary 80.2 17.0 15 12 9.96\n",
"2 Delemont 83.1 45.1 6 9 84.84\n",
"3 Franches-Mnt 92.5 39.7 5 5 93.40\n",
"4 Moutier 85.8 36.5 12 7 33.77\n",
"5 Neuveville 76.9 43.5 17 15 5.16\n",
"6 Porrentruy 76.1 35.3 9 7 90.57\n",
"7 Broye 83.8 70.2 16 7 92.85\n",
"8 Glane 92.4 67.8 14 8 97.16\n",
"9 Gruyere 82.4 53.3 12 7 97.67\n",
"10 Sarine 82.9 45.2 16 13 91.38\n",
".. ... ... ... ... ... ...\n",
"Variables not shown: Infant.Mortality (dbl)"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tbl_df(ds)"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<table>\n",
"<thead><tr><th></th><th scope=col>X</th><th scope=col>Fertility</th><th scope=col>Agriculture</th><th scope=col>Examination</th><th scope=col>Education</th><th scope=col>Catholic</th><th scope=col>Infant.Mortality</th></tr></thead>\n",
"<tbody>\n",
"\t<tr><th scope=row>1</th><td>Courtelary</td><td>80.2</td><td>17</td><td>15</td><td>12</td><td>9.96</td><td>22.2</td></tr>\n",
"\t<tr><th scope=row>2</th><td>Delemont</td><td>83.1</td><td>45.1</td><td>6</td><td>9</td><td>84.84</td><td>22.2</td></tr>\n",
"\t<tr><th scope=row>3</th><td>Franches-Mnt</td><td>92.5</td><td>39.7</td><td>5</td><td>5</td><td>93.4</td><td>20.2</td></tr>\n",
"\t<tr><th scope=row>4</th><td>Moutier</td><td>85.8</td><td>36.5</td><td>12</td><td>7</td><td>33.77</td><td>20.3</td></tr>\n",
"\t<tr><th scope=row>5</th><td>Neuveville</td><td>76.9</td><td>43.5</td><td>17</td><td>15</td><td>5.16</td><td>20.6</td></tr>\n",
"\t<tr><th scope=row>6</th><td>Porrentruy</td><td>76.1</td><td>35.3</td><td>9</td><td>7</td><td>90.57</td><td>26.6</td></tr>\n",
"\t<tr><th scope=row>7</th><td>Broye</td><td>83.8</td><td>70.2</td><td>16</td><td>7</td><td>92.85</td><td>23.6</td></tr>\n",
"\t<tr><th scope=row>8</th><td>Glane</td><td>92.4</td><td>67.8</td><td>14</td><td>8</td><td>97.16</td><td>24.9</td></tr>\n",
"\t<tr><th scope=row>9</th><td>Gruyere</td><td>82.4</td><td>53.3</td><td>12</td><td>7</td><td>97.67</td><td>21</td></tr>\n",
"\t<tr><th scope=row>10</th><td>Sarine</td><td>82.9</td><td>45.2</td><td>16</td><td>13</td><td>91.38</td><td>24.4</td></tr>\n",
"\t<tr><th scope=row>11</th><td>Veveyse</td><td>87.1</td><td>64.5</td><td>14</td><td>6</td><td>98.61</td><td>24.5</td></tr>\n",
"\t<tr><th scope=row>12</th><td>Aigle</td><td>64.1</td><td>62</td><td>21</td><td>12</td><td>8.52</td><td>16.5</td></tr>\n",
"\t<tr><th scope=row>13</th><td>Aubonne</td><td>66.9</td><td>67.5</td><td>14</td><td>7</td><td>2.27</td><td>19.1</td></tr>\n",
"\t<tr><th scope=row>14</th><td>Avenches</td><td>68.9</td><td>60.7</td><td>19</td><td>12</td><td>4.43</td><td>22.7</td></tr>\n",
"\t<tr><th scope=row>15</th><td>Cossonay</td><td>61.7</td><td>69.3</td><td>22</td><td>5</td><td>2.82</td><td>18.7</td></tr>\n",
"\t<tr><th scope=row>16</th><td>Echallens</td><td>68.3</td><td>72.6</td><td>18</td><td>2</td><td>24.2</td><td>21.2</td></tr>\n",
"\t<tr><th scope=row>17</th><td>Grandson</td><td>71.7</td><td>34</td><td>17</td><td>8</td><td>3.3</td><td>20</td></tr>\n",
"\t<tr><th scope=row>18</th><td>Lausanne</td><td>55.7</td><td>19.4</td><td>26</td><td>28</td><td>12.11</td><td>20.2</td></tr>\n",
"\t<tr><th scope=row>19</th><td>La Vallee</td><td>54.3</td><td>15.2</td><td>31</td><td>20</td><td>2.15</td><td>10.8</td></tr>\n",
"\t<tr><th scope=row>20</th><td>Lavaux</td><td>65.1</td><td>73</td><td>19</td><td>9</td><td>2.84</td><td>20</td></tr>\n",
"\t<tr><th scope=row>21</th><td>Morges</td><td>65.5</td><td>59.8</td><td>22</td><td>10</td><td>5.23</td><td>18</td></tr>\n",
"\t<tr><th scope=row>22</th><td>Moudon</td><td>65</td><td>55.1</td><td>14</td><td>3</td><td>4.52</td><td>22.4</td></tr>\n",
"\t<tr><th scope=row>23</th><td>Nyone</td><td>56.6</td><td>50.9</td><td>22</td><td>12</td><td>15.14</td><td>16.7</td></tr>\n",
"\t<tr><th scope=row>24</th><td>Orbe</td><td>57.4</td><td>54.1</td><td>20</td><td>6</td><td>4.2</td><td>15.3</td></tr>\n",
"\t<tr><th scope=row>25</th><td>Oron</td><td>72.5</td><td>71.2</td><td>12</td><td>1</td><td>2.4</td><td>21</td></tr>\n",
"\t<tr><th scope=row>26</th><td>Payerne</td><td>74.2</td><td>58.1</td><td>14</td><td>8</td><td>5.23</td><td>23.8</td></tr>\n",
"\t<tr><th scope=row>27</th><td>Paysd'enhaut</td><td>72</td><td>63.5</td><td>6</td><td>3</td><td>2.56</td><td>18</td></tr>\n",
"\t<tr><th scope=row>28</th><td>Rolle</td><td>60.5</td><td>60.8</td><td>16</td><td>10</td><td>7.72</td><td>16.3</td></tr>\n",
"\t<tr><th scope=row>29</th><td>Vevey</td><td>58.3</td><td>26.8</td><td>25</td><td>19</td><td>18.46</td><td>20.9</td></tr>\n",
"\t<tr><th scope=row>30</th><td>Yverdon</td><td>65.4</td><td>49.5</td><td>15</td><td>8</td><td>6.1</td><td>22.5</td></tr>\n",
"\t<tr><th scope=row>31</th><td>Conthey</td><td>75.5</td><td>85.9</td><td>3</td><td>2</td><td>99.71</td><td>15.1</td></tr>\n",
"\t<tr><th scope=row>32</th><td>Entremont</td><td>69.3</td><td>84.9</td><td>7</td><td>6</td><td>99.68</td><td>19.8</td></tr>\n",
"\t<tr><th scope=row>33</th><td>Herens</td><td>77.3</td><td>89.7</td><td>5</td><td>2</td><td>100</td><td>18.3</td></tr>\n",
"\t<tr><th scope=row>34</th><td>Martigwy</td><td>70.5</td><td>78.2</td><td>12</td><td>6</td><td>98.96</td><td>19.4</td></tr>\n",
"\t<tr><th scope=row>35</th><td>Monthey</td><td>79.4</td><td>64.9</td><td>7</td><td>3</td><td>98.22</td><td>20.2</td></tr>\n",
"\t<tr><th scope=row>36</th><td>St Maurice</td><td>65</td><td>75.9</td><td>9</td><td>9</td><td>99.06</td><td>17.8</td></tr>\n",
"\t<tr><th scope=row>37</th><td>Sierre</td><td>92.2</td><td>84.6</td><td>3</td><td>3</td><td>99.46</td><td>16.3</td></tr>\n",
"\t<tr><th scope=row>38</th><td>Sion</td><td>79.3</td><td>63.1</td><td>13</td><td>13</td><td>96.83</td><td>18.1</td></tr>\n",
"\t<tr><th scope=row>39</th><td>Boudry</td><td>70.4</td><td>38.4</td><td>26</td><td>12</td><td>5.62</td><td>20.3</td></tr>\n",
"\t<tr><th scope=row>40</th><td>La Chauxdfnd</td><td>65.7</td><td>7.7</td><td>29</td><td>11</td><td>13.79</td><td>20.5</td></tr>\n",
"\t<tr><th scope=row>41</th><td>Le Locle</td><td>72.7</td><td>16.7</td><td>22</td><td>13</td><td>11.22</td><td>18.9</td></tr>\n",
"\t<tr><th scope=row>42</th><td>Neuchatel</td><td>64.4</td><td>17.6</td><td>35</td><td>32</td><td>16.92</td><td>23</td></tr>\n",
"\t<tr><th scope=row>43</th><td>Val de Ruz</td><td>77.6</td><td>37.6</td><td>15</td><td>7</td><td>4.97</td><td>20</td></tr>\n",
"\t<tr><th scope=row>44</th><td>ValdeTravers</td><td>67.6</td><td>18.7</td><td>25</td><td>7</td><td>8.65</td><td>19.5</td></tr>\n",
"\t<tr><th scope=row>45</th><td>V. De Geneve</td><td>35</td><td>1.2</td><td>37</td><td>53</td><td>42.34</td><td>18</td></tr>\n",
"\t<tr><th scope=row>46</th><td>Rive Droite</td><td>44.7</td><td>46.6</td><td>16</td><td>29</td><td>50.43</td><td>18.2</td></tr>\n",
"\t<tr><th scope=row>47</th><td>Rive Gauche</td><td>42.8</td><td>27.7</td><td>22</td><td>29</td><td>58.33</td><td>19.3</td></tr>\n",
"</tbody>\n",
"</table>\n"
],
"text/latex": [
"\\begin{tabular}{r|lllllll}\n",
" & X & Fertility & Agriculture & Examination & Education & Catholic & Infant.Mortality\\\\\n",
"\\hline\n",
"\t1 & Courtelary & 80.2 & 17 & 15 & 12 & 9.96 & 22.2\\\\\n",
"\t2 & Delemont & 83.1 & 45.1 & 6 & 9 & 84.84 & 22.2\\\\\n",
"\t3 & Franches-Mnt & 92.5 & 39.7 & 5 & 5 & 93.4 & 20.2\\\\\n",
"\t4 & Moutier & 85.8 & 36.5 & 12 & 7 & 33.77 & 20.3\\\\\n",
"\t5 & Neuveville & 76.9 & 43.5 & 17 & 15 & 5.16 & 20.6\\\\\n",
"\t6 & Porrentruy & 76.1 & 35.3 & 9 & 7 & 90.57 & 26.6\\\\\n",
"\t7 & Broye & 83.8 & 70.2 & 16 & 7 & 92.85 & 23.6\\\\\n",
"\t8 & Glane & 92.4 & 67.8 & 14 & 8 & 97.16 & 24.9\\\\\n",
"\t9 & Gruyere & 82.4 & 53.3 & 12 & 7 & 97.67 & 21\\\\\n",
"\t10 & Sarine & 82.9 & 45.2 & 16 & 13 & 91.38 & 24.4\\\\\n",
"\t11 & Veveyse & 87.1 & 64.5 & 14 & 6 & 98.61 & 24.5\\\\\n",
"\t12 & Aigle & 64.1 & 62 & 21 & 12 & 8.52 & 16.5\\\\\n",
"\t13 & Aubonne & 66.9 & 67.5 & 14 & 7 & 2.27 & 19.1\\\\\n",
"\t14 & Avenches & 68.9 & 60.7 & 19 & 12 & 4.43 & 22.7\\\\\n",
"\t15 & Cossonay & 61.7 & 69.3 & 22 & 5 & 2.82 & 18.7\\\\\n",
"\t16 & Echallens & 68.3 & 72.6 & 18 & 2 & 24.2 & 21.2\\\\\n",
"\t17 & Grandson & 71.7 & 34 & 17 & 8 & 3.3 & 20\\\\\n",
"\t18 & Lausanne & 55.7 & 19.4 & 26 & 28 & 12.11 & 20.2\\\\\n",
"\t19 & La Vallee & 54.3 & 15.2 & 31 & 20 & 2.15 & 10.8\\\\\n",
"\t20 & Lavaux & 65.1 & 73 & 19 & 9 & 2.84 & 20\\\\\n",
"\t21 & Morges & 65.5 & 59.8 & 22 & 10 & 5.23 & 18\\\\\n",
"\t22 & Moudon & 65 & 55.1 & 14 & 3 & 4.52 & 22.4\\\\\n",
"\t23 & Nyone & 56.6 & 50.9 & 22 & 12 & 15.14 & 16.7\\\\\n",
"\t24 & Orbe & 57.4 & 54.1 & 20 & 6 & 4.2 & 15.3\\\\\n",
"\t25 & Oron & 72.5 & 71.2 & 12 & 1 & 2.4 & 21\\\\\n",
"\t26 & Payerne & 74.2 & 58.1 & 14 & 8 & 5.23 & 23.8\\\\\n",
"\t27 & Paysd'enhaut & 72 & 63.5 & 6 & 3 & 2.56 & 18\\\\\n",
"\t28 & Rolle & 60.5 & 60.8 & 16 & 10 & 7.72 & 16.3\\\\\n",
"\t29 & Vevey & 58.3 & 26.8 & 25 & 19 & 18.46 & 20.9\\\\\n",
"\t30 & Yverdon & 65.4 & 49.5 & 15 & 8 & 6.1 & 22.5\\\\\n",
"\t31 & Conthey & 75.5 & 85.9 & 3 & 2 & 99.71 & 15.1\\\\\n",
"\t32 & Entremont & 69.3 & 84.9 & 7 & 6 & 99.68 & 19.8\\\\\n",
"\t33 & Herens & 77.3 & 89.7 & 5 & 2 & 100 & 18.3\\\\\n",
"\t34 & Martigwy & 70.5 & 78.2 & 12 & 6 & 98.96 & 19.4\\\\\n",
"\t35 & Monthey & 79.4 & 64.9 & 7 & 3 & 98.22 & 20.2\\\\\n",
"\t36 & St Maurice & 65 & 75.9 & 9 & 9 & 99.06 & 17.8\\\\\n",
"\t37 & Sierre & 92.2 & 84.6 & 3 & 3 & 99.46 & 16.3\\\\\n",
"\t38 & Sion & 79.3 & 63.1 & 13 & 13 & 96.83 & 18.1\\\\\n",
"\t39 & Boudry & 70.4 & 38.4 & 26 & 12 & 5.62 & 20.3\\\\\n",
"\t40 & La Chauxdfnd & 65.7 & 7.7 & 29 & 11 & 13.79 & 20.5\\\\\n",
"\t41 & Le Locle & 72.7 & 16.7 & 22 & 13 & 11.22 & 18.9\\\\\n",
"\t42 & Neuchatel & 64.4 & 17.6 & 35 & 32 & 16.92 & 23\\\\\n",
"\t43 & Val de Ruz & 77.6 & 37.6 & 15 & 7 & 4.97 & 20\\\\\n",
"\t44 & ValdeTravers & 67.6 & 18.7 & 25 & 7 & 8.65 & 19.5\\\\\n",
"\t45 & V. De Geneve & 35 & 1.2 & 37 & 53 & 42.34 & 18\\\\\n",
"\t46 & Rive Droite & 44.7 & 46.6 & 16 & 29 & 50.43 & 18.2\\\\\n",
"\t47 & Rive Gauche & 42.8 & 27.7 & 22 & 29 & 58.33 & 19.3\\\\\n",
"\\end{tabular}\n"
],
"text/plain": [
"Source: local data frame [47 x 7]\n",
"\n",
" X Fertility Agriculture Examination Education Catholic\n",
" (fctr) (dbl) (dbl) (int) (int) (dbl)\n",
"1 Courtelary 80.2 17.0 15 12 9.96\n",
"2 Delemont 83.1 45.1 6 9 84.84\n",
"3 Franches-Mnt 92.5 39.7 5 5 93.40\n",
"4 Moutier 85.8 36.5 12 7 33.77\n",
"5 Neuveville 76.9 43.5 17 15 5.16\n",
"6 Porrentruy 76.1 35.3 9 7 90.57\n",
"7 Broye 83.8 70.2 16 7 92.85\n",
"8 Glane 92.4 67.8 14 8 97.16\n",
"9 Gruyere 82.4 53.3 12 7 97.67\n",
"10 Sarine 82.9 45.2 16 13 91.38\n",
".. ... ... ... ... ... ...\n",
"Variables not shown: Infant.Mortality (dbl)"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ds %>% tbl_df"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<table>\n",
"<thead><tr><th></th><th scope=col>X</th><th scope=col>Fertility</th><th scope=col>Agriculture</th><th scope=col>Examination</th><th scope=col>Education</th><th scope=col>Catholic</th><th scope=col>Infant.Mortality</th></tr></thead>\n",
"<tbody>\n",
"\t<tr><th scope=row>1</th><td>Courtelary</td><td>80.2</td><td>17</td><td>15</td><td>12</td><td>9.96</td><td>22.2</td></tr>\n",
"\t<tr><th scope=row>2</th><td>Delemont</td><td>83.1</td><td>45.1</td><td>6</td><td>9</td><td>84.84</td><td>22.2</td></tr>\n",
"\t<tr><th scope=row>3</th><td>Franches-Mnt</td><td>92.5</td><td>39.7</td><td>5</td><td>5</td><td>93.4</td><td>20.2</td></tr>\n",
"\t<tr><th scope=row>4</th><td>Moutier</td><td>85.8</td><td>36.5</td><td>12</td><td>7</td><td>33.77</td><td>20.3</td></tr>\n",
"\t<tr><th scope=row>5</th><td>Neuveville</td><td>76.9</td><td>43.5</td><td>17</td><td>15</td><td>5.16</td><td>20.6</td></tr>\n",
"\t<tr><th scope=row>6</th><td>Porrentruy</td><td>76.1</td><td>35.3</td><td>9</td><td>7</td><td>90.57</td><td>26.6</td></tr>\n",
"\t<tr><th scope=row>7</th><td>Broye</td><td>83.8</td><td>70.2</td><td>16</td><td>7</td><td>92.85</td><td>23.6</td></tr>\n",
"\t<tr><th scope=row>8</th><td>Glane</td><td>92.4</td><td>67.8</td><td>14</td><td>8</td><td>97.16</td><td>24.9</td></tr>\n",
"\t<tr><th scope=row>9</th><td>Gruyere</td><td>82.4</td><td>53.3</td><td>12</td><td>7</td><td>97.67</td><td>21</td></tr>\n",
"\t<tr><th scope=row>10</th><td>Sarine</td><td>82.9</td><td>45.2</td><td>16</td><td>13</td><td>91.38</td><td>24.4</td></tr>\n",
"\t<tr><th scope=row>11</th><td>Veveyse</td><td>87.1</td><td>64.5</td><td>14</td><td>6</td><td>98.61</td><td>24.5</td></tr>\n",
"\t<tr><th scope=row>12</th><td>Aigle</td><td>64.1</td><td>62</td><td>21</td><td>12</td><td>8.52</td><td>16.5</td></tr>\n",
"\t<tr><th scope=row>13</th><td>Aubonne</td><td>66.9</td><td>67.5</td><td>14</td><td>7</td><td>2.27</td><td>19.1</td></tr>\n",
"\t<tr><th scope=row>14</th><td>Avenches</td><td>68.9</td><td>60.7</td><td>19</td><td>12</td><td>4.43</td><td>22.7</td></tr>\n",
"\t<tr><th scope=row>15</th><td>Cossonay</td><td>61.7</td><td>69.3</td><td>22</td><td>5</td><td>2.82</td><td>18.7</td></tr>\n",
"\t<tr><th scope=row>16</th><td>Echallens</td><td>68.3</td><td>72.6</td><td>18</td><td>2</td><td>24.2</td><td>21.2</td></tr>\n",
"\t<tr><th scope=row>17</th><td>Grandson</td><td>71.7</td><td>34</td><td>17</td><td>8</td><td>3.3</td><td>20</td></tr>\n",
"\t<tr><th scope=row>18</th><td>Lausanne</td><td>55.7</td><td>19.4</td><td>26</td><td>28</td><td>12.11</td><td>20.2</td></tr>\n",
"\t<tr><th scope=row>19</th><td>La Vallee</td><td>54.3</td><td>15.2</td><td>31</td><td>20</td><td>2.15</td><td>10.8</td></tr>\n",
"\t<tr><th scope=row>20</th><td>Lavaux</td><td>65.1</td><td>73</td><td>19</td><td>9</td><td>2.84</td><td>20</td></tr>\n",
"\t<tr><th scope=row>21</th><td>Morges</td><td>65.5</td><td>59.8</td><td>22</td><td>10</td><td>5.23</td><td>18</td></tr>\n",
"\t<tr><th scope=row>22</th><td>Moudon</td><td>65</td><td>55.1</td><td>14</td><td>3</td><td>4.52</td><td>22.4</td></tr>\n",
"\t<tr><th scope=row>23</th><td>Nyone</td><td>56.6</td><td>50.9</td><td>22</td><td>12</td><td>15.14</td><td>16.7</td></tr>\n",
"\t<tr><th scope=row>24</th><td>Orbe</td><td>57.4</td><td>54.1</td><td>20</td><td>6</td><td>4.2</td><td>15.3</td></tr>\n",
"\t<tr><th scope=row>25</th><td>Oron</td><td>72.5</td><td>71.2</td><td>12</td><td>1</td><td>2.4</td><td>21</td></tr>\n",
"\t<tr><th scope=row>26</th><td>Payerne</td><td>74.2</td><td>58.1</td><td>14</td><td>8</td><td>5.23</td><td>23.8</td></tr>\n",
"\t<tr><th scope=row>27</th><td>Paysd'enhaut</td><td>72</td><td>63.5</td><td>6</td><td>3</td><td>2.56</td><td>18</td></tr>\n",
"\t<tr><th scope=row>28</th><td>Rolle</td><td>60.5</td><td>60.8</td><td>16</td><td>10</td><td>7.72</td><td>16.3</td></tr>\n",
"\t<tr><th scope=row>29</th><td>Vevey</td><td>58.3</td><td>26.8</td><td>25</td><td>19</td><td>18.46</td><td>20.9</td></tr>\n",
"\t<tr><th scope=row>30</th><td>Yverdon</td><td>65.4</td><td>49.5</td><td>15</td><td>8</td><td>6.1</td><td>22.5</td></tr>\n",
"\t<tr><th scope=row>31</th><td>Conthey</td><td>75.5</td><td>85.9</td><td>3</td><td>2</td><td>99.71</td><td>15.1</td></tr>\n",
"\t<tr><th scope=row>32</th><td>Entremont</td><td>69.3</td><td>84.9</td><td>7</td><td>6</td><td>99.68</td><td>19.8</td></tr>\n",
"\t<tr><th scope=row>33</th><td>Herens</td><td>77.3</td><td>89.7</td><td>5</td><td>2</td><td>100</td><td>18.3</td></tr>\n",
"\t<tr><th scope=row>34</th><td>Martigwy</td><td>70.5</td><td>78.2</td><td>12</td><td>6</td><td>98.96</td><td>19.4</td></tr>\n",
"\t<tr><th scope=row>35</th><td>Monthey</td><td>79.4</td><td>64.9</td><td>7</td><td>3</td><td>98.22</td><td>20.2</td></tr>\n",
"\t<tr><th scope=row>36</th><td>St Maurice</td><td>65</td><td>75.9</td><td>9</td><td>9</td><td>99.06</td><td>17.8</td></tr>\n",
"\t<tr><th scope=row>37</th><td>Sierre</td><td>92.2</td><td>84.6</td><td>3</td><td>3</td><td>99.46</td><td>16.3</td></tr>\n",
"\t<tr><th scope=row>38</th><td>Sion</td><td>79.3</td><td>63.1</td><td>13</td><td>13</td><td>96.83</td><td>18.1</td></tr>\n",
"\t<tr><th scope=row>39</th><td>Boudry</td><td>70.4</td><td>38.4</td><td>26</td><td>12</td><td>5.62</td><td>20.3</td></tr>\n",
"\t<tr><th scope=row>40</th><td>La Chauxdfnd</td><td>65.7</td><td>7.7</td><td>29</td><td>11</td><td>13.79</td><td>20.5</td></tr>\n",
"\t<tr><th scope=row>41</th><td>Le Locle</td><td>72.7</td><td>16.7</td><td>22</td><td>13</td><td>11.22</td><td>18.9</td></tr>\n",
"\t<tr><th scope=row>42</th><td>Neuchatel</td><td>64.4</td><td>17.6</td><td>35</td><td>32</td><td>16.92</td><td>23</td></tr>\n",
"\t<tr><th scope=row>43</th><td>Val de Ruz</td><td>77.6</td><td>37.6</td><td>15</td><td>7</td><td>4.97</td><td>20</td></tr>\n",
"\t<tr><th scope=row>44</th><td>ValdeTravers</td><td>67.6</td><td>18.7</td><td>25</td><td>7</td><td>8.65</td><td>19.5</td></tr>\n",
"\t<tr><th scope=row>45</th><td>V. De Geneve</td><td>35</td><td>1.2</td><td>37</td><td>53</td><td>42.34</td><td>18</td></tr>\n",
"\t<tr><th scope=row>46</th><td>Rive Droite</td><td>44.7</td><td>46.6</td><td>16</td><td>29</td><td>50.43</td><td>18.2</td></tr>\n",
"\t<tr><th scope=row>47</th><td>Rive Gauche</td><td>42.8</td><td>27.7</td><td>22</td><td>29</td><td>58.33</td><td>19.3</td></tr>\n",
"</tbody>\n",
"</table>\n"
],
"text/latex": [
"\\begin{tabular}{r|lllllll}\n",
" & X & Fertility & Agriculture & Examination & Education & Catholic & Infant.Mortality\\\\\n",
"\\hline\n",
"\t1 & Courtelary & 80.2 & 17 & 15 & 12 & 9.96 & 22.2\\\\\n",
"\t2 & Delemont & 83.1 & 45.1 & 6 & 9 & 84.84 & 22.2\\\\\n",
"\t3 & Franches-Mnt & 92.5 & 39.7 & 5 & 5 & 93.4 & 20.2\\\\\n",
"\t4 & Moutier & 85.8 & 36.5 & 12 & 7 & 33.77 & 20.3\\\\\n",
"\t5 & Neuveville & 76.9 & 43.5 & 17 & 15 & 5.16 & 20.6\\\\\n",
"\t6 & Porrentruy & 76.1 & 35.3 & 9 & 7 & 90.57 & 26.6\\\\\n",
"\t7 & Broye & 83.8 & 70.2 & 16 & 7 & 92.85 & 23.6\\\\\n",
"\t8 & Glane & 92.4 & 67.8 & 14 & 8 & 97.16 & 24.9\\\\\n",
"\t9 & Gruyere & 82.4 & 53.3 & 12 & 7 & 97.67 & 21\\\\\n",
"\t10 & Sarine & 82.9 & 45.2 & 16 & 13 & 91.38 & 24.4\\\\\n",
"\t11 & Veveyse & 87.1 & 64.5 & 14 & 6 & 98.61 & 24.5\\\\\n",
"\t12 & Aigle & 64.1 & 62 & 21 & 12 & 8.52 & 16.5\\\\\n",
"\t13 & Aubonne & 66.9 & 67.5 & 14 & 7 & 2.27 & 19.1\\\\\n",
"\t14 & Avenches & 68.9 & 60.7 & 19 & 12 & 4.43 & 22.7\\\\\n",
"\t15 & Cossonay & 61.7 & 69.3 & 22 & 5 & 2.82 & 18.7\\\\\n",
"\t16 & Echallens & 68.3 & 72.6 & 18 & 2 & 24.2 & 21.2\\\\\n",
"\t17 & Grandson & 71.7 & 34 & 17 & 8 & 3.3 & 20\\\\\n",
"\t18 & Lausanne & 55.7 & 19.4 & 26 & 28 & 12.11 & 20.2\\\\\n",
"\t19 & La Vallee & 54.3 & 15.2 & 31 & 20 & 2.15 & 10.8\\\\\n",
"\t20 & Lavaux & 65.1 & 73 & 19 & 9 & 2.84 & 20\\\\\n",
"\t21 & Morges & 65.5 & 59.8 & 22 & 10 & 5.23 & 18\\\\\n",
"\t22 & Moudon & 65 & 55.1 & 14 & 3 & 4.52 & 22.4\\\\\n",
"\t23 & Nyone & 56.6 & 50.9 & 22 & 12 & 15.14 & 16.7\\\\\n",
"\t24 & Orbe & 57.4 & 54.1 & 20 & 6 & 4.2 & 15.3\\\\\n",
"\t25 & Oron & 72.5 & 71.2 & 12 & 1 & 2.4 & 21\\\\\n",
"\t26 & Payerne & 74.2 & 58.1 & 14 & 8 & 5.23 & 23.8\\\\\n",
"\t27 & Paysd'enhaut & 72 & 63.5 & 6 & 3 & 2.56 & 18\\\\\n",
"\t28 & Rolle & 60.5 & 60.8 & 16 & 10 & 7.72 & 16.3\\\\\n",
"\t29 & Vevey & 58.3 & 26.8 & 25 & 19 & 18.46 & 20.9\\\\\n",
"\t30 & Yverdon & 65.4 & 49.5 & 15 & 8 & 6.1 & 22.5\\\\\n",
"\t31 & Conthey & 75.5 & 85.9 & 3 & 2 & 99.71 & 15.1\\\\\n",
"\t32 & Entremont & 69.3 & 84.9 & 7 & 6 & 99.68 & 19.8\\\\\n",
"\t33 & Herens & 77.3 & 89.7 & 5 & 2 & 100 & 18.3\\\\\n",
"\t34 & Martigwy & 70.5 & 78.2 & 12 & 6 & 98.96 & 19.4\\\\\n",
"\t35 & Monthey & 79.4 & 64.9 & 7 & 3 & 98.22 & 20.2\\\\\n",
"\t36 & St Maurice & 65 & 75.9 & 9 & 9 & 99.06 & 17.8\\\\\n",
"\t37 & Sierre & 92.2 & 84.6 & 3 & 3 & 99.46 & 16.3\\\\\n",
"\t38 & Sion & 79.3 & 63.1 & 13 & 13 & 96.83 & 18.1\\\\\n",
"\t39 & Boudry & 70.4 & 38.4 & 26 & 12 & 5.62 & 20.3\\\\\n",
"\t40 & La Chauxdfnd & 65.7 & 7.7 & 29 & 11 & 13.79 & 20.5\\\\\n",
"\t41 & Le Locle & 72.7 & 16.7 & 22 & 13 & 11.22 & 18.9\\\\\n",
"\t42 & Neuchatel & 64.4 & 17.6 & 35 & 32 & 16.92 & 23\\\\\n",
"\t43 & Val de Ruz & 77.6 & 37.6 & 15 & 7 & 4.97 & 20\\\\\n",
"\t44 & ValdeTravers & 67.6 & 18.7 & 25 & 7 & 8.65 & 19.5\\\\\n",
"\t45 & V. De Geneve & 35 & 1.2 & 37 & 53 & 42.34 & 18\\\\\n",
"\t46 & Rive Droite & 44.7 & 46.6 & 16 & 29 & 50.43 & 18.2\\\\\n",
"\t47 & Rive Gauche & 42.8 & 27.7 & 22 & 29 & 58.33 & 19.3\\\\\n",
"\\end{tabular}\n"
],
"text/plain": [
"Source: local data frame [47 x 7]\n",
"\n",
" X Fertility Agriculture Examination Education Catholic\n",
" (fctr) (dbl) (dbl) (int) (int) (dbl)\n",
"1 Courtelary 80.2 17.0 15 12 9.96\n",
"2 Delemont 83.1 45.1 6 9 84.84\n",
"3 Franches-Mnt 92.5 39.7 5 5 93.40\n",
"4 Moutier 85.8 36.5 12 7 33.77\n",
"5 Neuveville 76.9 43.5 17 15 5.16\n",
"6 Porrentruy 76.1 35.3 9 7 90.57\n",
"7 Broye 83.8 70.2 16 7 92.85\n",
"8 Glane 92.4 67.8 14 8 97.16\n",
"9 Gruyere 82.4 53.3 12 7 97.67\n",
"10 Sarine 82.9 45.2 16 13 91.38\n",
".. ... ... ... ... ... ...\n",
"Variables not shown: Infant.Mortality (dbl)"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ds %>% tbl_df(.)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Let's put it into a new object"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"ds2 <- tbl_df(ds)"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<ol class=list-inline>\n",
"\t<li>'tbl_df'</li>\n",
"\t<li>'tbl'</li>\n",
"\t<li>'data.frame'</li>\n",
"</ol>\n"
],
"text/latex": [
"\\begin{enumerate*}\n",
"\\item 'tbl_df'\n",
"\\item 'tbl'\n",
"\\item 'data.frame'\n",
"\\end{enumerate*}\n"
],
"text/markdown": [
"1. 'tbl_df'\n",
"2. 'tbl'\n",
"3. 'data.frame'\n",
"\n",
"\n"
],
"text/plain": [
"[1] \"tbl_df\" \"tbl\" \"data.frame\""
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"class(ds2)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Again, these next lines are the same. `select` does as it says: select\n",
"the column from the dataset."
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<table>\n",
"<thead><tr><th></th><th scope=col>Education</th><th scope=col>Catholic</th><th scope=col>Fertility</th></tr></thead>\n",
"<tbody>\n",
"\t<tr><th scope=row>1</th><td>12</td><td>9.96</td><td>80.2</td></tr>\n",
"\t<tr><th scope=row>2</th><td>9</td><td>84.84</td><td>83.1</td></tr>\n",
"\t<tr><th scope=row>3</th><td>5</td><td>93.4</td><td>92.5</td></tr>\n",
"\t<tr><th scope=row>4</th><td>7</td><td>33.77</td><td>85.8</td></tr>\n",
"\t<tr><th scope=row>5</th><td>15</td><td>5.16</td><td>76.9</td></tr>\n",
"\t<tr><th scope=row>6</th><td>7</td><td>90.57</td><td>76.1</td></tr>\n",
"\t<tr><th scope=row>7</th><td>7</td><td>92.85</td><td>83.8</td></tr>\n",
"\t<tr><th scope=row>8</th><td>8</td><td>97.16</td><td>92.4</td></tr>\n",
"\t<tr><th scope=row>9</th><td>7</td><td>97.67</td><td>82.4</td></tr>\n",
"\t<tr><th scope=row>10</th><td>13</td><td>91.38</td><td>82.9</td></tr>\n",
"\t<tr><th scope=row>11</th><td>6</td><td>98.61</td><td>87.1</td></tr>\n",
"\t<tr><th scope=row>12</th><td>12</td><td>8.52</td><td>64.1</td></tr>\n",
"\t<tr><th scope=row>13</th><td>7</td><td>2.27</td><td>66.9</td></tr>\n",
"\t<tr><th scope=row>14</th><td>12</td><td>4.43</td><td>68.9</td></tr>\n",
"\t<tr><th scope=row>15</th><td>5</td><td>2.82</td><td>61.7</td></tr>\n",
"\t<tr><th scope=row>16</th><td>2</td><td>24.2</td><td>68.3</td></tr>\n",
"\t<tr><th scope=row>17</th><td>8</td><td>3.3</td><td>71.7</td></tr>\n",
"\t<tr><th scope=row>18</th><td>28</td><td>12.11</td><td>55.7</td></tr>\n",
"\t<tr><th scope=row>19</th><td>20</td><td>2.15</td><td>54.3</td></tr>\n",
"\t<tr><th scope=row>20</th><td>9</td><td>2.84</td><td>65.1</td></tr>\n",
"\t<tr><th scope=row>21</th><td>10</td><td>5.23</td><td>65.5</td></tr>\n",
"\t<tr><th scope=row>22</th><td>3</td><td>4.52</td><td>65</td></tr>\n",
"\t<tr><th scope=row>23</th><td>12</td><td>15.14</td><td>56.6</td></tr>\n",
"\t<tr><th scope=row>24</th><td>6</td><td>4.2</td><td>57.4</td></tr>\n",
"\t<tr><th scope=row>25</th><td>1</td><td>2.4</td><td>72.5</td></tr>\n",
"\t<tr><th scope=row>26</th><td>8</td><td>5.23</td><td>74.2</td></tr>\n",
"\t<tr><th scope=row>27</th><td>3</td><td>2.56</td><td>72</td></tr>\n",
"\t<tr><th scope=row>28</th><td>10</td><td>7.72</td><td>60.5</td></tr>\n",
"\t<tr><th scope=row>29</th><td>19</td><td>18.46</td><td>58.3</td></tr>\n",
"\t<tr><th scope=row>30</th><td>8</td><td>6.1</td><td>65.4</td></tr>\n",
"\t<tr><th scope=row>31</th><td>2</td><td>99.71</td><td>75.5</td></tr>\n",
"\t<tr><th scope=row>32</th><td>6</td><td>99.68</td><td>69.3</td></tr>\n",
"\t<tr><th scope=row>33</th><td>2</td><td>100</td><td>77.3</td></tr>\n",
"\t<tr><th scope=row>34</th><td>6</td><td>98.96</td><td>70.5</td></tr>\n",
"\t<tr><th scope=row>35</th><td>3</td><td>98.22</td><td>79.4</td></tr>\n",
"\t<tr><th scope=row>36</th><td>9</td><td>99.06</td><td>65</td></tr>\n",
"\t<tr><th scope=row>37</th><td>3</td><td>99.46</td><td>92.2</td></tr>\n",
"\t<tr><th scope=row>38</th><td>13</td><td>96.83</td><td>79.3</td></tr>\n",
"\t<tr><th scope=row>39</th><td>12</td><td>5.62</td><td>70.4</td></tr>\n",
"\t<tr><th scope=row>40</th><td>11</td><td>13.79</td><td>65.7</td></tr>\n",
"\t<tr><th scope=row>41</th><td>13</td><td>11.22</td><td>72.7</td></tr>\n",
"\t<tr><th scope=row>42</th><td>32</td><td>16.92</td><td>64.4</td></tr>\n",
"\t<tr><th scope=row>43</th><td>7</td><td>4.97</td><td>77.6</td></tr>\n",
"\t<tr><th scope=row>44</th><td>7</td><td>8.65</td><td>67.6</td></tr>\n",
"\t<tr><th scope=row>45</th><td>53</td><td>42.34</td><td>35</td></tr>\n",
"\t<tr><th scope=row>46</th><td>29</td><td>50.43</td><td>44.7</td></tr>\n",
"\t<tr><th scope=row>47</th><td>29</td><td>58.33</td><td>42.8</td></tr>\n",
"</tbody>\n",
"</table>\n"
],
"text/latex": [
"\\begin{tabular}{r|lll}\n",
" & Education & Catholic & Fertility\\\\\n",
"\\hline\n",
"\t1 & 12 & 9.96 & 80.2\\\\\n",
"\t2 & 9 & 84.84 & 83.1\\\\\n",
"\t3 & 5 & 93.4 & 92.5\\\\\n",
"\t4 & 7 & 33.77 & 85.8\\\\\n",
"\t5 & 15 & 5.16 & 76.9\\\\\n",
"\t6 & 7 & 90.57 & 76.1\\\\\n",
"\t7 & 7 & 92.85 & 83.8\\\\\n",
"\t8 & 8 & 97.16 & 92.4\\\\\n",
"\t9 & 7 & 97.67 & 82.4\\\\\n",
"\t10 & 13 & 91.38 & 82.9\\\\\n",
"\t11 & 6 & 98.61 & 87.1\\\\\n",
"\t12 & 12 & 8.52 & 64.1\\\\\n",
"\t13 & 7 & 2.27 & 66.9\\\\\n",
"\t14 & 12 & 4.43 & 68.9\\\\\n",
"\t15 & 5 & 2.82 & 61.7\\\\\n",
"\t16 & 2 & 24.2 & 68.3\\\\\n",
"\t17 & 8 & 3.3 & 71.7\\\\\n",
"\t18 & 28 & 12.11 & 55.7\\\\\n",
"\t19 & 20 & 2.15 & 54.3\\\\\n",
"\t20 & 9 & 2.84 & 65.1\\\\\n",
"\t21 & 10 & 5.23 & 65.5\\\\\n",
"\t22 & 3 & 4.52 & 65\\\\\n",
"\t23 & 12 & 15.14 & 56.6\\\\\n",
"\t24 & 6 & 4.2 & 57.4\\\\\n",
"\t25 & 1 & 2.4 & 72.5\\\\\n",
"\t26 & 8 & 5.23 & 74.2\\\\\n",
"\t27 & 3 & 2.56 & 72\\\\\n",
"\t28 & 10 & 7.72 & 60.5\\\\\n",
"\t29 & 19 & 18.46 & 58.3\\\\\n",
"\t30 & 8 & 6.1 & 65.4\\\\\n",
"\t31 & 2 & 99.71 & 75.5\\\\\n",
"\t32 & 6 & 99.68 & 69.3\\\\\n",
"\t33 & 2 & 100 & 77.3\\\\\n",
"\t34 & 6 & 98.96 & 70.5\\\\\n",
"\t35 & 3 & 98.22 & 79.4\\\\\n",
"\t36 & 9 & 99.06 & 65\\\\\n",
"\t37 & 3 & 99.46 & 92.2\\\\\n",
"\t38 & 13 & 96.83 & 79.3\\\\\n",
"\t39 & 12 & 5.62 & 70.4\\\\\n",
"\t40 & 11 & 13.79 & 65.7\\\\\n",
"\t41 & 13 & 11.22 & 72.7\\\\\n",
"\t42 & 32 & 16.92 & 64.4\\\\\n",
"\t43 & 7 & 4.97 & 77.6\\\\\n",
"\t44 & 7 & 8.65 & 67.6\\\\\n",
"\t45 & 53 & 42.34 & 35\\\\\n",
"\t46 & 29 & 50.43 & 44.7\\\\\n",
"\t47 & 29 & 58.33 & 42.8\\\\\n",
"\\end{tabular}\n"
],
"text/plain": [
"Source: local data frame [47 x 3]\n",
"\n",
" Education Catholic Fertility\n",
" (int) (dbl) (dbl)\n",
"1 12 9.96 80.2\n",
"2 9 84.84 83.1\n",
"3 5 93.40 92.5\n",
"4 7 33.77 85.8\n",
"5 15 5.16 76.9\n",
"6 7 90.57 76.1\n",
"7 7 92.85 83.8\n",
"8 8 97.16 92.4\n",
"9 7 97.67 82.4\n",
"10 13 91.38 82.9\n",
".. ... ... ..."
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"select(ds2, Education, Catholic, Fertility)"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<table>\n",
"<thead><tr><th></th><th scope=col>Education</th><th scope=col>Catholic</th><th scope=col>Fertility</th></tr></thead>\n",
"<tbody>\n",
"\t<tr><th scope=row>1</th><td>12</td><td>9.96</td><td>80.2</td></tr>\n",
"\t<tr><th scope=row>2</th><td>9</td><td>84.84</td><td>83.1</td></tr>\n",
"\t<tr><th scope=row>3</th><td>5</td><td>93.4</td><td>92.5</td></tr>\n",
"\t<tr><th scope=row>4</th><td>7</td><td>33.77</td><td>85.8</td></tr>\n",
"\t<tr><th scope=row>5</th><td>15</td><td>5.16</td><td>76.9</td></tr>\n",
"\t<tr><th scope=row>6</th><td>7</td><td>90.57</td><td>76.1</td></tr>\n",
"\t<tr><th scope=row>7</th><td>7</td><td>92.85</td><td>83.8</td></tr>\n",
"\t<tr><th scope=row>8</th><td>8</td><td>97.16</td><td>92.4</td></tr>\n",
"\t<tr><th scope=row>9</th><td>7</td><td>97.67</td><td>82.4</td></tr>\n",
"\t<tr><th scope=row>10</th><td>13</td><td>91.38</td><td>82.9</td></tr>\n",
"\t<tr><th scope=row>11</th><td>6</td><td>98.61</td><td>87.1</td></tr>\n",
"\t<tr><th scope=row>12</th><td>12</td><td>8.52</td><td>64.1</td></tr>\n",
"\t<tr><th scope=row>13</th><td>7</td><td>2.27</td><td>66.9</td></tr>\n",
"\t<tr><th scope=row>14</th><td>12</td><td>4.43</td><td>68.9</td></tr>\n",
"\t<tr><th scope=row>15</th><td>5</td><td>2.82</td><td>61.7</td></tr>\n",
"\t<tr><th scope=row>16</th><td>2</td><td>24.2</td><td>68.3</td></tr>\n",
"\t<tr><th scope=row>17</th><td>8</td><td>3.3</td><td>71.7</td></tr>\n",
"\t<tr><th scope=row>18</th><td>28</td><td>12.11</td><td>55.7</td></tr>\n",
"\t<tr><th scope=row>19</th><td>20</td><td>2.15</td><td>54.3</td></tr>\n",
"\t<tr><th scope=row>20</th><td>9</td><td>2.84</td><td>65.1</td></tr>\n",
"\t<tr><th scope=row>21</th><td>10</td><td>5.23</td><td>65.5</td></tr>\n",
"\t<tr><th scope=row>22</th><td>3</td><td>4.52</td><td>65</td></tr>\n",
"\t<tr><th scope=row>23</th><td>12</td><td>15.14</td><td>56.6</td></tr>\n",
"\t<tr><th scope=row>24</th><td>6</td><td>4.2</td><td>57.4</td></tr>\n",
"\t<tr><th scope=row>25</th><td>1</td><td>2.4</td><td>72.5</td></tr>\n",
"\t<tr><th scope=row>26</th><td>8</td><td>5.23</td><td>74.2</td></tr>\n",
"\t<tr><th scope=row>27</th><td>3</td><td>2.56</td><td>72</td></tr>\n",
"\t<tr><th scope=row>28</th><td>10</td><td>7.72</td><td>60.5</td></tr>\n",
"\t<tr><th scope=row>29</th><td>19</td><td>18.46</td><td>58.3</td></tr>\n",
"\t<tr><th scope=row>30</th><td>8</td><td>6.1</td><td>65.4</td></tr>\n",
"\t<tr><th scope=row>31</th><td>2</td><td>99.71</td><td>75.5</td></tr>\n",
"\t<tr><th scope=row>32</th><td>6</td><td>99.68</td><td>69.3</td></tr>\n",
"\t<tr><th scope=row>33</th><td>2</td><td>100</td><td>77.3</td></tr>\n",
"\t<tr><th scope=row>34</th><td>6</td><td>98.96</td><td>70.5</td></tr>\n",
"\t<tr><th scope=row>35</th><td>3</td><td>98.22</td><td>79.4</td></tr>\n",
"\t<tr><th scope=row>36</th><td>9</td><td>99.06</td><td>65</td></tr>\n",
"\t<tr><th scope=row>37</th><td>3</td><td>99.46</td><td>92.2</td></tr>\n",
"\t<tr><th scope=row>38</th><td>13</td><td>96.83</td><td>79.3</td></tr>\n",
"\t<tr><th scope=row>39</th><td>12</td><td>5.62</td><td>70.4</td></tr>\n",
"\t<tr><th scope=row>40</th><td>11</td><td>13.79</td><td>65.7</td></tr>\n",
"\t<tr><th scope=row>41</th><td>13</td><td>11.22</td><td>72.7</td></tr>\n",
"\t<tr><th scope=row>42</th><td>32</td><td>16.92</td><td>64.4</td></tr>\n",
"\t<tr><th scope=row>43</th><td>7</td><td>4.97</td><td>77.6</td></tr>\n",
"\t<tr><th scope=row>44</th><td>7</td><td>8.65</td><td>67.6</td></tr>\n",
"\t<tr><th scope=row>45</th><td>53</td><td>42.34</td><td>35</td></tr>\n",
"\t<tr><th scope=row>46</th><td>29</td><td>50.43</td><td>44.7</td></tr>\n",
"\t<tr><th scope=row>47</th><td>29</td><td>58.33</td><td>42.8</td></tr>\n",
"</tbody>\n",
"</table>\n"
],
"text/latex": [
"\\begin{tabular}{r|lll}\n",
" & Education & Catholic & Fertility\\\\\n",
"\\hline\n",
"\t1 & 12 & 9.96 & 80.2\\\\\n",
"\t2 & 9 & 84.84 & 83.1\\\\\n",
"\t3 & 5 & 93.4 & 92.5\\\\\n",
"\t4 & 7 & 33.77 & 85.8\\\\\n",
"\t5 & 15 & 5.16 & 76.9\\\\\n",
"\t6 & 7 & 90.57 & 76.1\\\\\n",
"\t7 & 7 & 92.85 & 83.8\\\\\n",
"\t8 & 8 & 97.16 & 92.4\\\\\n",
"\t9 & 7 & 97.67 & 82.4\\\\\n",
"\t10 & 13 & 91.38 & 82.9\\\\\n",
"\t11 & 6 & 98.61 & 87.1\\\\\n",
"\t12 & 12 & 8.52 & 64.1\\\\\n",
"\t13 & 7 & 2.27 & 66.9\\\\\n",
"\t14 & 12 & 4.43 & 68.9\\\\\n",
"\t15 & 5 & 2.82 & 61.7\\\\\n",
"\t16 & 2 & 24.2 & 68.3\\\\\n",
"\t17 & 8 & 3.3 & 71.7\\\\\n",
"\t18 & 28 & 12.11 & 55.7\\\\\n",
"\t19 & 20 & 2.15 & 54.3\\\\\n",
"\t20 & 9 & 2.84 & 65.1\\\\\n",
"\t21 & 10 & 5.23 & 65.5\\\\\n",
"\t22 & 3 & 4.52 & 65\\\\\n",
"\t23 & 12 & 15.14 & 56.6\\\\\n",
"\t24 & 6 & 4.2 & 57.4\\\\\n",
"\t25 & 1 & 2.4 & 72.5\\\\\n",
"\t26 & 8 & 5.23 & 74.2\\\\\n",
"\t27 & 3 & 2.56 & 72\\\\\n",
"\t28 & 10 & 7.72 & 60.5\\\\\n",
"\t29 & 19 & 18.46 & 58.3\\\\\n",
"\t30 & 8 & 6.1 & 65.4\\\\\n",
"\t31 & 2 & 99.71 & 75.5\\\\\n",
"\t32 & 6 & 99.68 & 69.3\\\\\n",
"\t33 & 2 & 100 & 77.3\\\\\n",
"\t34 & 6 & 98.96 & 70.5\\\\\n",
"\t35 & 3 & 98.22 & 79.4\\\\\n",
"\t36 & 9 & 99.06 & 65\\\\\n",
"\t37 & 3 & 99.46 & 92.2\\\\\n",
"\t38 & 13 & 96.83 & 79.3\\\\\n",
"\t39 & 12 & 5.62 & 70.4\\\\\n",
"\t40 & 11 & 13.79 & 65.7\\\\\n",
"\t41 & 13 & 11.22 & 72.7\\\\\n",
"\t42 & 32 & 16.92 & 64.4\\\\\n",
"\t43 & 7 & 4.97 & 77.6\\\\\n",
"\t44 & 7 & 8.65 & 67.6\\\\\n",
"\t45 & 53 & 42.34 & 35\\\\\n",
"\t46 & 29 & 50.43 & 44.7\\\\\n",
"\t47 & 29 & 58.33 & 42.8\\\\\n",
"\\end{tabular}\n"
],
"text/plain": [
"Source: local data frame [47 x 3]\n",
"\n",
" Education Catholic Fertility\n",
" (int) (dbl) (dbl)\n",
"1 12 9.96 80.2\n",
"2 9 84.84 83.1\n",
"3 5 93.40 92.5\n",
"4 7 33.77 85.8\n",
"5 15 5.16 76.9\n",
"6 7 90.57 76.1\n",
"7 7 92.85 83.8\n",
"8 8 97.16 92.4\n",
"9 7 97.67 82.4\n",
"10 13 91.38 82.9\n",
".. ... ... ..."
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ds2 %>% select(Education, Catholic, Fertility)"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<table>\n",
"<thead><tr><th></th><th scope=col>Education</th><th scope=col>Catholic</th><th scope=col>Fertility</th></tr></thead>\n",
"<tbody>\n",
"\t<tr><th scope=row>1</th><td>12</td><td>9.96</td><td>80.2</td></tr>\n",
"\t<tr><th scope=row>2</th><td>9</td><td>84.84</td><td>83.1</td></tr>\n",
"\t<tr><th scope=row>3</th><td>5</td><td>93.4</td><td>92.5</td></tr>\n",
"\t<tr><th scope=row>4</th><td>7</td><td>33.77</td><td>85.8</td></tr>\n",
"\t<tr><th scope=row>5</th><td>15</td><td>5.16</td><td>76.9</td></tr>\n",
"\t<tr><th scope=row>6</th><td>7</td><td>90.57</td><td>76.1</td></tr>\n",
"\t<tr><th scope=row>7</th><td>7</td><td>92.85</td><td>83.8</td></tr>\n",
"\t<tr><th scope=row>8</th><td>8</td><td>97.16</td><td>92.4</td></tr>\n",
"\t<tr><th scope=row>9</th><td>7</td><td>97.67</td><td>82.4</td></tr>\n",
"\t<tr><th scope=row>10</th><td>13</td><td>91.38</td><td>82.9</td></tr>\n",
"\t<tr><th scope=row>11</th><td>6</td><td>98.61</td><td>87.1</td></tr>\n",
"\t<tr><th scope=row>12</th><td>12</td><td>8.52</td><td>64.1</td></tr>\n",
"\t<tr><th scope=row>13</th><td>7</td><td>2.27</td><td>66.9</td></tr>\n",
"\t<tr><th scope=row>14</th><td>12</td><td>4.43</td><td>68.9</td></tr>\n",
"\t<tr><th scope=row>15</th><td>5</td><td>2.82</td><td>61.7</td></tr>\n",
"\t<tr><th scope=row>16</th><td>2</td><td>24.2</td><td>68.3</td></tr>\n",
"\t<tr><th scope=row>17</th><td>8</td><td>3.3</td><td>71.7</td></tr>\n",
"\t<tr><th scope=row>18</th><td>28</td><td>12.11</td><td>55.7</td></tr>\n",
"\t<tr><th scope=row>19</th><td>20</td><td>2.15</td><td>54.3</td></tr>\n",
"\t<tr><th scope=row>20</th><td>9</td><td>2.84</td><td>65.1</td></tr>\n",
"\t<tr><th scope=row>21</th><td>10</td><td>5.23</td><td>65.5</td></tr>\n",
"\t<tr><th scope=row>22</th><td>3</td><td>4.52</td><td>65</td></tr>\n",
"\t<tr><th scope=row>23</th><td>12</td><td>15.14</td><td>56.6</td></tr>\n",
"\t<tr><th scope=row>24</th><td>6</td><td>4.2</td><td>57.4</td></tr>\n",
"\t<tr><th scope=row>25</th><td>1</td><td>2.4</td><td>72.5</td></tr>\n",
"\t<tr><th scope=row>26</th><td>8</td><td>5.23</td><td>74.2</td></tr>\n",
"\t<tr><th scope=row>27</th><td>3</td><td>2.56</td><td>72</td></tr>\n",
"\t<tr><th scope=row>28</th><td>10</td><td>7.72</td><td>60.5</td></tr>\n",
"\t<tr><th scope=row>29</th><td>19</td><td>18.46</td><td>58.3</td></tr>\n",
"\t<tr><th scope=row>30</th><td>8</td><td>6.1</td><td>65.4</td></tr>\n",
"\t<tr><th scope=row>31</th><td>2</td><td>99.71</td><td>75.5</td></tr>\n",
"\t<tr><th scope=row>32</th><td>6</td><td>99.68</td><td>69.3</td></tr>\n",
"\t<tr><th scope=row>33</th><td>2</td><td>100</td><td>77.3</td></tr>\n",
"\t<tr><th scope=row>34</th><td>6</td><td>98.96</td><td>70.5</td></tr>\n",
"\t<tr><th scope=row>35</th><td>3</td><td>98.22</td><td>79.4</td></tr>\n",
"\t<tr><th scope=row>36</th><td>9</td><td>99.06</td><td>65</td></tr>\n",
"\t<tr><th scope=row>37</th><td>3</td><td>99.46</td><td>92.2</td></tr>\n",
"\t<tr><th scope=row>38</th><td>13</td><td>96.83</td><td>79.3</td></tr>\n",
"\t<tr><th scope=row>39</th><td>12</td><td>5.62</td><td>70.4</td></tr>\n",
"\t<tr><th scope=row>40</th><td>11</td><td>13.79</td><td>65.7</td></tr>\n",
"\t<tr><th scope=row>41</th><td>13</td><td>11.22</td><td>72.7</td></tr>\n",
"\t<tr><th scope=row>42</th><td>32</td><td>16.92</td><td>64.4</td></tr>\n",
"\t<tr><th scope=row>43</th><td>7</td><td>4.97</td><td>77.6</td></tr>\n",
"\t<tr><th scope=row>44</th><td>7</td><td>8.65</td><td>67.6</td></tr>\n",
"\t<tr><th scope=row>45</th><td>53</td><td>42.34</td><td>35</td></tr>\n",
"\t<tr><th scope=row>46</th><td>29</td><td>50.43</td><td>44.7</td></tr>\n",
"\t<tr><th scope=row>47</th><td>29</td><td>58.33</td><td>42.8</td></tr>\n",
"</tbody>\n",
"</table>\n"
],
"text/latex": [
"\\begin{tabular}{r|lll}\n",
" & Education & Catholic & Fertility\\\\\n",
"\\hline\n",
"\t1 & 12 & 9.96 & 80.2\\\\\n",
"\t2 & 9 & 84.84 & 83.1\\\\\n",
"\t3 & 5 & 93.4 & 92.5\\\\\n",
"\t4 & 7 & 33.77 & 85.8\\\\\n",
"\t5 & 15 & 5.16 & 76.9\\\\\n",
"\t6 & 7 & 90.57 & 76.1\\\\\n",
"\t7 & 7 & 92.85 & 83.8\\\\\n",
"\t8 & 8 & 97.16 & 92.4\\\\\n",
"\t9 & 7 & 97.67 & 82.4\\\\\n",
"\t10 & 13 & 91.38 & 82.9\\\\\n",
"\t11 & 6 & 98.61 & 87.1\\\\\n",
"\t12 & 12 & 8.52 & 64.1\\\\\n",
"\t13 & 7 & 2.27 & 66.9\\\\\n",
"\t14 & 12 & 4.43 & 68.9\\\\\n",
"\t15 & 5 & 2.82 & 61.7\\\\\n",
"\t16 & 2 & 24.2 & 68.3\\\\\n",
"\t17 & 8 & 3.3 & 71.7\\\\\n",
"\t18 & 28 & 12.11 & 55.7\\\\\n",
"\t19 & 20 & 2.15 & 54.3\\\\\n",
"\t20 & 9 & 2.84 & 65.1\\\\\n",
"\t21 & 10 & 5.23 & 65.5\\\\\n",
"\t22 & 3 & 4.52 & 65\\\\\n",
"\t23 & 12 & 15.14 & 56.6\\\\\n",
"\t24 & 6 & 4.2 & 57.4\\\\\n",
"\t25 & 1 & 2.4 & 72.5\\\\\n",
"\t26 & 8 & 5.23 & 74.2\\\\\n",
"\t27 & 3 & 2.56 & 72\\\\\n",
"\t28 & 10 & 7.72 & 60.5\\\\\n",
"\t29 & 19 & 18.46 & 58.3\\\\\n",
"\t30 & 8 & 6.1 & 65.4\\\\\n",
"\t31 & 2 & 99.71 & 75.5\\\\\n",
"\t32 & 6 & 99.68 & 69.3\\\\\n",
"\t33 & 2 & 100 & 77.3\\\\\n",
"\t34 & 6 & 98.96 & 70.5\\\\\n",
"\t35 & 3 & 98.22 & 79.4\\\\\n",
"\t36 & 9 & 99.06 & 65\\\\\n",
"\t37 & 3 & 99.46 & 92.2\\\\\n",
"\t38 & 13 & 96.83 & 79.3\\\\\n",
"\t39 & 12 & 5.62 & 70.4\\\\\n",
"\t40 & 11 & 13.79 & 65.7\\\\\n",
"\t41 & 13 & 11.22 & 72.7\\\\\n",
"\t42 & 32 & 16.92 & 64.4\\\\\n",
"\t43 & 7 & 4.97 & 77.6\\\\\n",
"\t44 & 7 & 8.65 & 67.6\\\\\n",
"\t45 & 53 & 42.34 & 35\\\\\n",
"\t46 & 29 & 50.43 & 44.7\\\\\n",
"\t47 & 29 & 58.33 & 42.8\\\\\n",
"\\end{tabular}\n"
],
"text/plain": [
"Source: local data frame [47 x 3]\n",
"\n",
" Education Catholic Fertility\n",
" (int) (dbl) (dbl)\n",
"1 12 9.96 80.2\n",
"2 9 84.84 83.1\n",
"3 5 93.40 92.5\n",
"4 7 33.77 85.8\n",
"5 15 5.16 76.9\n",
"6 7 90.57 76.1\n",
"7 7 92.85 83.8\n",
"8 8 97.16 92.4\n",
"9 7 97.67 82.4\n",
"10 13 91.38 82.9\n",
".. ... ... ..."
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ds2 %>% select(., Education, Catholic, Fertility)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"You can rename columns either using `rename` or `select` (the new name\n",
"is on the left hand side, so `newname = oldname`). However, with the\n",
"`select` command, only that column gets selected, while `rename`\n",
"selects all columns."
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<table>\n",
"<thead><tr><th></th><th scope=col>County</th><th scope=col>Fertility</th><th scope=col>Agriculture</th><th scope=col>Examination</th><th scope=col>Education</th><th scope=col>Catholic</th><th scope=col>Infant.Mortality</th></tr></thead>\n",
"<tbody>\n",
"\t<tr><th scope=row>1</th><td>Courtelary</td><td>80.2</td><td>17</td><td>15</td><td>12</td><td>9.96</td><td>22.2</td></tr>\n",
"\t<tr><th scope=row>2</th><td>Delemont</td><td>83.1</td><td>45.1</td><td>6</td><td>9</td><td>84.84</td><td>22.2</td></tr>\n",
"\t<tr><th scope=row>3</th><td>Franches-Mnt</td><td>92.5</td><td>39.7</td><td>5</td><td>5</td><td>93.4</td><td>20.2</td></tr>\n",
"\t<tr><th scope=row>4</th><td>Moutier</td><td>85.8</td><td>36.5</td><td>12</td><td>7</td><td>33.77</td><td>20.3</td></tr>\n",
"\t<tr><th scope=row>5</th><td>Neuveville</td><td>76.9</td><td>43.5</td><td>17</td><td>15</td><td>5.16</td><td>20.6</td></tr>\n",
"\t<tr><th scope=row>6</th><td>Porrentruy</td><td>76.1</td><td>35.3</td><td>9</td><td>7</td><td>90.57</td><td>26.6</td></tr>\n",
"\t<tr><th scope=row>7</th><td>Broye</td><td>83.8</td><td>70.2</td><td>16</td><td>7</td><td>92.85</td><td>23.6</td></tr>\n",
"\t<tr><th scope=row>8</th><td>Glane</td><td>92.4</td><td>67.8</td><td>14</td><td>8</td><td>97.16</td><td>24.9</td></tr>\n",
"\t<tr><th scope=row>9</th><td>Gruyere</td><td>82.4</td><td>53.3</td><td>12</td><td>7</td><td>97.67</td><td>21</td></tr>\n",
"\t<tr><th scope=row>10</th><td>Sarine</td><td>82.9</td><td>45.2</td><td>16</td><td>13</td><td>91.38</td><td>24.4</td></tr>\n",
"\t<tr><th scope=row>11</th><td>Veveyse</td><td>87.1</td><td>64.5</td><td>14</td><td>6</td><td>98.61</td><td>24.5</td></tr>\n",
"\t<tr><th scope=row>12</th><td>Aigle</td><td>64.1</td><td>62</td><td>21</td><td>12</td><td>8.52</td><td>16.5</td></tr>\n",
"\t<tr><th scope=row>13</th><td>Aubonne</td><td>66.9</td><td>67.5</td><td>14</td><td>7</td><td>2.27</td><td>19.1</td></tr>\n",
"\t<tr><th scope=row>14</th><td>Avenches</td><td>68.9</td><td>60.7</td><td>19</td><td>12</td><td>4.43</td><td>22.7</td></tr>\n",
"\t<tr><th scope=row>15</th><td>Cossonay</td><td>61.7</td><td>69.3</td><td>22</td><td>5</td><td>2.82</td><td>18.7</td></tr>\n",
"\t<tr><th scope=row>16</th><td>Echallens</td><td>68.3</td><td>72.6</td><td>18</td><td>2</td><td>24.2</td><td>21.2</td></tr>\n",
"\t<tr><th scope=row>17</th><td>Grandson</td><td>71.7</td><td>34</td><td>17</td><td>8</td><td>3.3</td><td>20</td></tr>\n",
"\t<tr><th scope=row>18</th><td>Lausanne</td><td>55.7</td><td>19.4</td><td>26</td><td>28</td><td>12.11</td><td>20.2</td></tr>\n",
"\t<tr><th scope=row>19</th><td>La Vallee</td><td>54.3</td><td>15.2</td><td>31</td><td>20</td><td>2.15</td><td>10.8</td></tr>\n",
"\t<tr><th scope=row>20</th><td>Lavaux</td><td>65.1</td><td>73</td><td>19</td><td>9</td><td>2.84</td><td>20</td></tr>\n",
"\t<tr><th scope=row>21</th><td>Morges</td><td>65.5</td><td>59.8</td><td>22</td><td>10</td><td>5.23</td><td>18</td></tr>\n",
"\t<tr><th scope=row>22</th><td>Moudon</td><td>65</td><td>55.1</td><td>14</td><td>3</td><td>4.52</td><td>22.4</td></tr>\n",
"\t<tr><th scope=row>23</th><td>Nyone</td><td>56.6</td><td>50.9</td><td>22</td><td>12</td><td>15.14</td><td>16.7</td></tr>\n",
"\t<tr><th scope=row>24</th><td>Orbe</td><td>57.4</td><td>54.1</td><td>20</td><td>6</td><td>4.2</td><td>15.3</td></tr>\n",
"\t<tr><th scope=row>25</th><td>Oron</td><td>72.5</td><td>71.2</td><td>12</td><td>1</td><td>2.4</td><td>21</td></tr>\n",
"\t<tr><th scope=row>26</th><td>Payerne</td><td>74.2</td><td>58.1</td><td>14</td><td>8</td><td>5.23</td><td>23.8</td></tr>\n",
"\t<tr><th scope=row>27</th><td>Paysd'enhaut</td><td>72</td><td>63.5</td><td>6</td><td>3</td><td>2.56</td><td>18</td></tr>\n",
"\t<tr><th scope=row>28</th><td>Rolle</td><td>60.5</td><td>60.8</td><td>16</td><td>10</td><td>7.72</td><td>16.3</td></tr>\n",
"\t<tr><th scope=row>29</th><td>Vevey</td><td>58.3</td><td>26.8</td><td>25</td><td>19</td><td>18.46</td><td>20.9</td></tr>\n",
"\t<tr><th scope=row>30</th><td>Yverdon</td><td>65.4</td><td>49.5</td><td>15</td><td>8</td><td>6.1</td><td>22.5</td></tr>\n",
"\t<tr><th scope=row>31</th><td>Conthey</td><td>75.5</td><td>85.9</td><td>3</td><td>2</td><td>99.71</td><td>15.1</td></tr>\n",
"\t<tr><th scope=row>32</th><td>Entremont</td><td>69.3</td><td>84.9</td><td>7</td><td>6</td><td>99.68</td><td>19.8</td></tr>\n",
"\t<tr><th scope=row>33</th><td>Herens</td><td>77.3</td><td>89.7</td><td>5</td><td>2</td><td>100</td><td>18.3</td></tr>\n",
"\t<tr><th scope=row>34</th><td>Martigwy</td><td>70.5</td><td>78.2</td><td>12</td><td>6</td><td>98.96</td><td>19.4</td></tr>\n",
"\t<tr><th scope=row>35</th><td>Monthey</td><td>79.4</td><td>64.9</td><td>7</td><td>3</td><td>98.22</td><td>20.2</td></tr>\n",
"\t<tr><th scope=row>36</th><td>St Maurice</td><td>65</td><td>75.9</td><td>9</td><td>9</td><td>99.06</td><td>17.8</td></tr>\n",
"\t<tr><th scope=row>37</th><td>Sierre</td><td>92.2</td><td>84.6</td><td>3</td><td>3</td><td>99.46</td><td>16.3</td></tr>\n",
"\t<tr><th scope=row>38</th><td>Sion</td><td>79.3</td><td>63.1</td><td>13</td><td>13</td><td>96.83</td><td>18.1</td></tr>\n",
"\t<tr><th scope=row>39</th><td>Boudry</td><td>70.4</td><td>38.4</td><td>26</td><td>12</td><td>5.62</td><td>20.3</td></tr>\n",
"\t<tr><th scope=row>40</th><td>La Chauxdfnd</td><td>65.7</td><td>7.7</td><td>29</td><td>11</td><td>13.79</td><td>20.5</td></tr>\n",
"\t<tr><th scope=row>41</th><td>Le Locle</td><td>72.7</td><td>16.7</td><td>22</td><td>13</td><td>11.22</td><td>18.9</td></tr>\n",
"\t<tr><th scope=row>42</th><td>Neuchatel</td><td>64.4</td><td>17.6</td><td>35</td><td>32</td><td>16.92</td><td>23</td></tr>\n",
"\t<tr><th scope=row>43</th><td>Val de Ruz</td><td>77.6</td><td>37.6</td><td>15</td><td>7</td><td>4.97</td><td>20</td></tr>\n",
"\t<tr><th scope=row>44</th><td>ValdeTravers</td><td>67.6</td><td>18.7</td><td>25</td><td>7</td><td>8.65</td><td>19.5</td></tr>\n",
"\t<tr><th scope=row>45</th><td>V. De Geneve</td><td>35</td><td>1.2</td><td>37</td><td>53</td><td>42.34</td><td>18</td></tr>\n",
"\t<tr><th scope=row>46</th><td>Rive Droite</td><td>44.7</td><td>46.6</td><td>16</td><td>29</td><td>50.43</td><td>18.2</td></tr>\n",
"\t<tr><th scope=row>47</th><td>Rive Gauche</td><td>42.8</td><td>27.7</td><td>22</td><td>29</td><td>58.33</td><td>19.3</td></tr>\n",
"</tbody>\n",
"</table>\n"
],
"text/latex": [
"\\begin{tabular}{r|lllllll}\n",
" & County & Fertility & Agriculture & Examination & Education & Catholic & Infant.Mortality\\\\\n",
"\\hline\n",
"\t1 & Courtelary & 80.2 & 17 & 15 & 12 & 9.96 & 22.2\\\\\n",
"\t2 & Delemont & 83.1 & 45.1 & 6 & 9 & 84.84 & 22.2\\\\\n",
"\t3 & Franches-Mnt & 92.5 & 39.7 & 5 & 5 & 93.4 & 20.2\\\\\n",
"\t4 & Moutier & 85.8 & 36.5 & 12 & 7 & 33.77 & 20.3\\\\\n",
"\t5 & Neuveville & 76.9 & 43.5 & 17 & 15 & 5.16 & 20.6\\\\\n",
"\t6 & Porrentruy & 76.1 & 35.3 & 9 & 7 & 90.57 & 26.6\\\\\n",
"\t7 & Broye & 83.8 & 70.2 & 16 & 7 & 92.85 & 23.6\\\\\n",
"\t8 & Glane & 92.4 & 67.8 & 14 & 8 & 97.16 & 24.9\\\\\n",
"\t9 & Gruyere & 82.4 & 53.3 & 12 & 7 & 97.67 & 21\\\\\n",
"\t10 & Sarine & 82.9 & 45.2 & 16 & 13 & 91.38 & 24.4\\\\\n",
"\t11 & Veveyse & 87.1 & 64.5 & 14 & 6 & 98.61 & 24.5\\\\\n",
"\t12 & Aigle & 64.1 & 62 & 21 & 12 & 8.52 & 16.5\\\\\n",
"\t13 & Aubonne & 66.9 & 67.5 & 14 & 7 & 2.27 & 19.1\\\\\n",
"\t14 & Avenches & 68.9 & 60.7 & 19 & 12 & 4.43 & 22.7\\\\\n",
"\t15 & Cossonay & 61.7 & 69.3 & 22 & 5 & 2.82 & 18.7\\\\\n",
"\t16 & Echallens & 68.3 & 72.6 & 18 & 2 & 24.2 & 21.2\\\\\n",
"\t17 & Grandson & 71.7 & 34 & 17 & 8 & 3.3 & 20\\\\\n",
"\t18 & Lausanne & 55.7 & 19.4 & 26 & 28 & 12.11 & 20.2\\\\\n",
"\t19 & La Vallee & 54.3 & 15.2 & 31 & 20 & 2.15 & 10.8\\\\\n",
"\t20 & Lavaux & 65.1 & 73 & 19 & 9 & 2.84 & 20\\\\\n",
"\t21 & Morges & 65.5 & 59.8 & 22 & 10 & 5.23 & 18\\\\\n",
"\t22 & Moudon & 65 & 55.1 & 14 & 3 & 4.52 & 22.4\\\\\n",
"\t23 & Nyone & 56.6 & 50.9 & 22 & 12 & 15.14 & 16.7\\\\\n",
"\t24 & Orbe & 57.4 & 54.1 & 20 & 6 & 4.2 & 15.3\\\\\n",
"\t25 & Oron & 72.5 & 71.2 & 12 & 1 & 2.4 & 21\\\\\n",
"\t26 & Payerne & 74.2 & 58.1 & 14 & 8 & 5.23 & 23.8\\\\\n",
"\t27 & Paysd'enhaut & 72 & 63.5 & 6 & 3 & 2.56 & 18\\\\\n",
"\t28 & Rolle & 60.5 & 60.8 & 16 & 10 & 7.72 & 16.3\\\\\n",
"\t29 & Vevey & 58.3 & 26.8 & 25 & 19 & 18.46 & 20.9\\\\\n",
"\t30 & Yverdon & 65.4 & 49.5 & 15 & 8 & 6.1 & 22.5\\\\\n",
"\t31 & Conthey & 75.5 & 85.9 & 3 & 2 & 99.71 & 15.1\\\\\n",
"\t32 & Entremont & 69.3 & 84.9 & 7 & 6 & 99.68 & 19.8\\\\\n",
"\t33 & Herens & 77.3 & 89.7 & 5 & 2 & 100 & 18.3\\\\\n",
"\t34 & Martigwy & 70.5 & 78.2 & 12 & 6 & 98.96 & 19.4\\\\\n",
"\t35 & Monthey & 79.4 & 64.9 & 7 & 3 & 98.22 & 20.2\\\\\n",
"\t36 & St Maurice & 65 & 75.9 & 9 & 9 & 99.06 & 17.8\\\\\n",
"\t37 & Sierre & 92.2 & 84.6 & 3 & 3 & 99.46 & 16.3\\\\\n",
"\t38 & Sion & 79.3 & 63.1 & 13 & 13 & 96.83 & 18.1\\\\\n",
"\t39 & Boudry & 70.4 & 38.4 & 26 & 12 & 5.62 & 20.3\\\\\n",
"\t40 & La Chauxdfnd & 65.7 & 7.7 & 29 & 11 & 13.79 & 20.5\\\\\n",
"\t41 & Le Locle & 72.7 & 16.7 & 22 & 13 & 11.22 & 18.9\\\\\n",
"\t42 & Neuchatel & 64.4 & 17.6 & 35 & 32 & 16.92 & 23\\\\\n",
"\t43 & Val de Ruz & 77.6 & 37.6 & 15 & 7 & 4.97 & 20\\\\\n",
"\t44 & ValdeTravers & 67.6 & 18.7 & 25 & 7 & 8.65 & 19.5\\\\\n",
"\t45 & V. De Geneve & 35 & 1.2 & 37 & 53 & 42.34 & 18\\\\\n",
"\t46 & Rive Droite & 44.7 & 46.6 & 16 & 29 & 50.43 & 18.2\\\\\n",
"\t47 & Rive Gauche & 42.8 & 27.7 & 22 & 29 & 58.33 & 19.3\\\\\n",
"\\end{tabular}\n"
],
"text/plain": [
"Source: local data frame [47 x 7]\n",
"\n",
" County Fertility Agriculture Examination Education Catholic\n",
" (fctr) (dbl) (dbl) (int) (int) (dbl)\n",
"1 Courtelary 80.2 17.0 15 12 9.96\n",
"2 Delemont 83.1 45.1 6 9 84.84\n",
"3 Franches-Mnt 92.5 39.7 5 5 93.40\n",
"4 Moutier 85.8 36.5 12 7 33.77\n",
"5 Neuveville 76.9 43.5 17 15 5.16\n",
"6 Porrentruy 76.1 35.3 9 7 90.57\n",
"7 Broye 83.8 70.2 16 7 92.85\n",
"8 Glane 92.4 67.8 14 8 97.16\n",
"9 Gruyere 82.4 53.3 12 7 97.67\n",
"10 Sarine 82.9 45.2 16 13 91.38\n",
".. ... ... ... ... ... ...\n",
"Variables not shown: Infant.Mortality (dbl)"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ds2 %>% rename(County = X)"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<table>\n",
"<thead><tr><th></th><th scope=col>County</th></tr></thead>\n",
"<tbody>\n",
"\t<tr><th scope=row>1</th><td>Courtelary</td></tr>\n",
"\t<tr><th scope=row>2</th><td>Delemont</td></tr>\n",
"\t<tr><th scope=row>3</th><td>Franches-Mnt</td></tr>\n",
"\t<tr><th scope=row>4</th><td>Moutier</td></tr>\n",
"\t<tr><th scope=row>5</th><td>Neuveville</td></tr>\n",
"\t<tr><th scope=row>6</th><td>Porrentruy</td></tr>\n",
"\t<tr><th scope=row>7</th><td>Broye</td></tr>\n",
"\t<tr><th scope=row>8</th><td>Glane</td></tr>\n",
"\t<tr><th scope=row>9</th><td>Gruyere</td></tr>\n",
"\t<tr><th scope=row>10</th><td>Sarine</td></tr>\n",
"\t<tr><th scope=row>11</th><td>Veveyse</td></tr>\n",
"\t<tr><th scope=row>12</th><td>Aigle</td></tr>\n",
"\t<tr><th scope=row>13</th><td>Aubonne</td></tr>\n",
"\t<tr><th scope=row>14</th><td>Avenches</td></tr>\n",
"\t<tr><th scope=row>15</th><td>Cossonay</td></tr>\n",
"\t<tr><th scope=row>16</th><td>Echallens</td></tr>\n",
"\t<tr><th scope=row>17</th><td>Grandson</td></tr>\n",
"\t<tr><th scope=row>18</th><td>Lausanne</td></tr>\n",
"\t<tr><th scope=row>19</th><td>La Vallee</td></tr>\n",
"\t<tr><th scope=row>20</th><td>Lavaux</td></tr>\n",
"\t<tr><th scope=row>21</th><td>Morges</td></tr>\n",
"\t<tr><th scope=row>22</th><td>Moudon</td></tr>\n",
"\t<tr><th scope=row>23</th><td>Nyone</td></tr>\n",
"\t<tr><th scope=row>24</th><td>Orbe</td></tr>\n",
"\t<tr><th scope=row>25</th><td>Oron</td></tr>\n",
"\t<tr><th scope=row>26</th><td>Payerne</td></tr>\n",
"\t<tr><th scope=row>27</th><td>Paysd'enhaut</td></tr>\n",
"\t<tr><th scope=row>28</th><td>Rolle</td></tr>\n",
"\t<tr><th scope=row>29</th><td>Vevey</td></tr>\n",
"\t<tr><th scope=row>30</th><td>Yverdon</td></tr>\n",
"\t<tr><th scope=row>31</th><td>Conthey</td></tr>\n",
"\t<tr><th scope=row>32</th><td>Entremont</td></tr>\n",
"\t<tr><th scope=row>33</th><td>Herens</td></tr>\n",
"\t<tr><th scope=row>34</th><td>Martigwy</td></tr>\n",
"\t<tr><th scope=row>35</th><td>Monthey</td></tr>\n",
"\t<tr><th scope=row>36</th><td>St Maurice</td></tr>\n",
"\t<tr><th scope=row>37</th><td>Sierre</td></tr>\n",
"\t<tr><th scope=row>38</th><td>Sion</td></tr>\n",
"\t<tr><th scope=row>39</th><td>Boudry</td></tr>\n",
"\t<tr><th scope=row>40</th><td>La Chauxdfnd</td></tr>\n",
"\t<tr><th scope=row>41</th><td>Le Locle</td></tr>\n",
"\t<tr><th scope=row>42</th><td>Neuchatel</td></tr>\n",
"\t<tr><th scope=row>43</th><td>Val de Ruz</td></tr>\n",
"\t<tr><th scope=row>44</th><td>ValdeTravers</td></tr>\n",
"\t<tr><th scope=row>45</th><td>V. De Geneve</td></tr>\n",
"\t<tr><th scope=row>46</th><td>Rive Droite</td></tr>\n",
"\t<tr><th scope=row>47</th><td>Rive Gauche</td></tr>\n",
"</tbody>\n",
"</table>\n"
],
"text/latex": [
"\\begin{tabular}{r|l}\n",
" & County\\\\\n",
"\\hline\n",
"\t1 & Courtelary\\\\\n",
"\t2 & Delemont\\\\\n",
"\t3 & Franches-Mnt\\\\\n",
"\t4 & Moutier\\\\\n",
"\t5 & Neuveville\\\\\n",
"\t6 & Porrentruy\\\\\n",
"\t7 & Broye\\\\\n",
"\t8 & Glane\\\\\n",
"\t9 & Gruyere\\\\\n",
"\t10 & Sarine\\\\\n",
"\t11 & Veveyse\\\\\n",
"\t12 & Aigle\\\\\n",
"\t13 & Aubonne\\\\\n",
"\t14 & Avenches\\\\\n",
"\t15 & Cossonay\\\\\n",
"\t16 & Echallens\\\\\n",
"\t17 & Grandson\\\\\n",
"\t18 & Lausanne\\\\\n",
"\t19 & La Vallee\\\\\n",
"\t20 & Lavaux\\\\\n",
"\t21 & Morges\\\\\n",
"\t22 & Moudon\\\\\n",
"\t23 & Nyone\\\\\n",
"\t24 & Orbe\\\\\n",
"\t25 & Oron\\\\\n",
"\t26 & Payerne\\\\\n",
"\t27 & Paysd'enhaut\\\\\n",
"\t28 & Rolle\\\\\n",
"\t29 & Vevey\\\\\n",
"\t30 & Yverdon\\\\\n",
"\t31 & Conthey\\\\\n",
"\t32 & Entremont\\\\\n",
"\t33 & Herens\\\\\n",
"\t34 & Martigwy\\\\\n",
"\t35 & Monthey\\\\\n",
"\t36 & St Maurice\\\\\n",
"\t37 & Sierre\\\\\n",
"\t38 & Sion\\\\\n",
"\t39 & Boudry\\\\\n",
"\t40 & La Chauxdfnd\\\\\n",
"\t41 & Le Locle\\\\\n",
"\t42 & Neuchatel\\\\\n",
"\t43 & Val de Ruz\\\\\n",
"\t44 & ValdeTravers\\\\\n",
"\t45 & V. De Geneve\\\\\n",
"\t46 & Rive Droite\\\\\n",
"\t47 & Rive Gauche\\\\\n",
"\\end{tabular}\n"
],
"text/plain": [
"Source: local data frame [47 x 1]\n",
"\n",
" County\n",
" (fctr)\n",
"1 Courtelary\n",
"2 Delemont\n",
"3 Franches-Mnt\n",
"4 Moutier\n",
"5 Neuveville\n",
"6 Porrentruy\n",
"7 Broye\n",
"8 Glane\n",
"9 Gruyere\n",
"10 Sarine\n",
".. ..."
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ds2 %>% select(County = X)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"You can subset the dataset using `filter`. Note the double equal sign\n",
"`==` for testing if 'Examination' is equal to 15. A single `=` is\n",
"used for something else (assigning things to objects)."
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<table>\n",
"<thead><tr><th></th><th scope=col>X</th><th scope=col>Fertility</th><th scope=col>Agriculture</th><th scope=col>Examination</th><th scope=col>Education</th><th scope=col>Catholic</th><th scope=col>Infant.Mortality</th></tr></thead>\n",
"<tbody>\n",
"\t<tr><th scope=row>1</th><td>Courtelary</td><td>80.2</td><td>17</td><td>15</td><td>12</td><td>9.96</td><td>22.2</td></tr>\n",
"\t<tr><th scope=row>2</th><td>Yverdon</td><td>65.4</td><td>49.5</td><td>15</td><td>8</td><td>6.1</td><td>22.5</td></tr>\n",
"\t<tr><th scope=row>3</th><td>Val de Ruz</td><td>77.6</td><td>37.6</td><td>15</td><td>7</td><td>4.97</td><td>20</td></tr>\n",
"</tbody>\n",
"</table>\n"
],
"text/latex": [
"\\begin{tabular}{r|lllllll}\n",
" & X & Fertility & Agriculture & Examination & Education & Catholic & Infant.Mortality\\\\\n",
"\\hline\n",
"\t1 & Courtelary & 80.2 & 17 & 15 & 12 & 9.96 & 22.2\\\\\n",
"\t2 & Yverdon & 65.4 & 49.5 & 15 & 8 & 6.1 & 22.5\\\\\n",
"\t3 & Val de Ruz & 77.6 & 37.6 & 15 & 7 & 4.97 & 20\\\\\n",
"\\end{tabular}\n"
],
"text/plain": [
"Source: local data frame [3 x 7]\n",
"\n",
" X Fertility Agriculture Examination Education Catholic\n",
" (fctr) (dbl) (dbl) (int) (int) (dbl)\n",
"1 Courtelary 80.2 17.0 15 12 9.96\n",
"2 Yverdon 65.4 49.5 15 8 6.10\n",
"3 Val de Ruz 77.6 37.6 15 7 4.97\n",
"Variables not shown: Infant.Mortality (dbl)"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"filter(ds2, Catholic < 20, Examination == 15)"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<table>\n",
"<thead><tr><th></th><th scope=col>X</th><th scope=col>Fertility</th><th scope=col>Agriculture</th><th scope=col>Examination</th><th scope=col>Education</th><th scope=col>Catholic</th><th scope=col>Infant.Mortality</th></tr></thead>\n",
"<tbody>\n",
"\t<tr><th scope=row>1</th><td>Courtelary</td><td>80.2</td><td>17</td><td>15</td><td>12</td><td>9.96</td><td>22.2</td></tr>\n",
"\t<tr><th scope=row>2</th><td>Yverdon</td><td>65.4</td><td>49.5</td><td>15</td><td>8</td><td>6.1</td><td>22.5</td></tr>\n",
"\t<tr><th scope=row>3</th><td>Val de Ruz</td><td>77.6</td><td>37.6</td><td>15</td><td>7</td><td>4.97</td><td>20</td></tr>\n",
"</tbody>\n",
"</table>\n"
],
"text/latex": [
"\\begin{tabular}{r|lllllll}\n",
" & X & Fertility & Agriculture & Examination & Education & Catholic & Infant.Mortality\\\\\n",
"\\hline\n",
"\t1 & Courtelary & 80.2 & 17 & 15 & 12 & 9.96 & 22.2\\\\\n",
"\t2 & Yverdon & 65.4 & 49.5 & 15 & 8 & 6.1 & 22.5\\\\\n",
"\t3 & Val de Ruz & 77.6 & 37.6 & 15 & 7 & 4.97 & 20\\\\\n",
"\\end{tabular}\n"
],
"text/plain": [
"Source: local data frame [3 x 7]\n",
"\n",
" X Fertility Agriculture Examination Education Catholic\n",
" (fctr) (dbl) (dbl) (int) (int) (dbl)\n",
"1 Courtelary 80.2 17.0 15 12 9.96\n",
"2 Yverdon 65.4 49.5 15 8 6.10\n",
"3 Val de Ruz 77.6 37.6 15 7 4.97\n",
"Variables not shown: Infant.Mortality (dbl)"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ds2 %>% filter(Catholic < 20, Examination == 15)"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<table>\n",
"<thead><tr><th></th><th scope=col>X</th><th scope=col>Fertility</th><th scope=col>Agriculture</th><th scope=col>Examination</th><th scope=col>Education</th><th scope=col>Catholic</th><th scope=col>Infant.Mortality</th></tr></thead>\n",
"<tbody>\n",
"\t<tr><th scope=row>1</th><td>Courtelary</td><td>80.2</td><td>17</td><td>15</td><td>12</td><td>9.96</td><td>22.2</td></tr>\n",
"\t<tr><th scope=row>2</th><td>Yverdon</td><td>65.4</td><td>49.5</td><td>15</td><td>8</td><td>6.1</td><td>22.5</td></tr>\n",
"\t<tr><th scope=row>3</th><td>Val de Ruz</td><td>77.6</td><td>37.6</td><td>15</td><td>7</td><td>4.97</td><td>20</td></tr>\n",
"</tbody>\n",
"</table>\n"
],
"text/latex": [
"\\begin{tabular}{r|lllllll}\n",
" & X & Fertility & Agriculture & Examination & Education & Catholic & Infant.Mortality\\\\\n",
"\\hline\n",
"\t1 & Courtelary & 80.2 & 17 & 15 & 12 & 9.96 & 22.2\\\\\n",
"\t2 & Yverdon & 65.4 & 49.5 & 15 & 8 & 6.1 & 22.5\\\\\n",
"\t3 & Val de Ruz & 77.6 & 37.6 & 15 & 7 & 4.97 & 20\\\\\n",
"\\end{tabular}\n"
],
"text/plain": [
"Source: local data frame [3 x 7]\n",
"\n",
" X Fertility Agriculture Examination Education Catholic\n",
" (fctr) (dbl) (dbl) (int) (int) (dbl)\n",
"1 Courtelary 80.2 17.0 15 12 9.96\n",
"2 Yverdon 65.4 49.5 15 8 6.10\n",
"3 Val de Ruz 77.6 37.6 15 7 4.97\n",
"Variables not shown: Infant.Mortality (dbl)"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ds2 %>% filter(., Catholic < 20, Examination == 15)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## For string/factor variables"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<table>\n",
"<thead><tr><th></th><th scope=col>X</th><th scope=col>Fertility</th><th scope=col>Agriculture</th><th scope=col>Examination</th><th scope=col>Education</th><th scope=col>Catholic</th><th scope=col>Infant.Mortality</th></tr></thead>\n",
"<tbody>\n",
"\t<tr><th scope=row>1</th><td>Aigle</td><td>64.1</td><td>62</td><td>21</td><td>12</td><td>8.52</td><td>16.5</td></tr>\n",
"</tbody>\n",
"</table>\n"
],
"text/latex": [
"\\begin{tabular}{r|lllllll}\n",
" & X & Fertility & Agriculture & Examination & Education & Catholic & Infant.Mortality\\\\\n",
"\\hline\n",
"\t1 & Aigle & 64.1 & 62 & 21 & 12 & 8.52 & 16.5\\\\\n",
"\\end{tabular}\n"
],
"text/plain": [
"Source: local data frame [1 x 7]\n",
"\n",
" X Fertility Agriculture Examination Education Catholic Infant.Mortality\n",
" (fctr) (dbl) (dbl) (int) (int) (dbl) (dbl)\n",
"1 Aigle 64.1 62 21 12 8.52 16.5"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ds2 %>% filter(X == 'Aigle')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can start chaining these commands together using the `%>%` command.\n",
"There is no limit to how long a chain can be. `arrange`\n",
"sorts/orders/re-arranges the column Education in ascending\n",
"order. `mutate` creates a new column."
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<table>\n",
"<thead><tr><th></th><th scope=col>Education</th><th scope=col>Fertility</th></tr></thead>\n",
"<tbody>\n",
"\t<tr><th scope=row>1</th><td>9</td><td>83.1</td></tr>\n",
"\t<tr><th scope=row>2</th><td>5</td><td>92.5</td></tr>\n",
"\t<tr><th scope=row>3</th><td>7</td><td>85.8</td></tr>\n",
"\t<tr><th scope=row>4</th><td>7</td><td>76.1</td></tr>\n",
"\t<tr><th scope=row>5</th><td>7</td><td>83.8</td></tr>\n",
"\t<tr><th scope=row>6</th><td>8</td><td>92.4</td></tr>\n",
"\t<tr><th scope=row>7</th><td>7</td><td>82.4</td></tr>\n",
"\t<tr><th scope=row>8</th><td>13</td><td>82.9</td></tr>\n",
"\t<tr><th scope=row>9</th><td>6</td><td>87.1</td></tr>\n",
"\t<tr><th scope=row>10</th><td>2</td><td>68.3</td></tr>\n",
"\t<tr><th scope=row>11</th><td>2</td><td>75.5</td></tr>\n",
"\t<tr><th scope=row>12</th><td>6</td><td>69.3</td></tr>\n",
"\t<tr><th scope=row>13</th><td>2</td><td>77.3</td></tr>\n",
"\t<tr><th scope=row>14</th><td>6</td><td>70.5</td></tr>\n",
"\t<tr><th scope=row>15</th><td>3</td><td>79.4</td></tr>\n",
"\t<tr><th scope=row>16</th><td>9</td><td>65</td></tr>\n",
"\t<tr><th scope=row>17</th><td>3</td><td>92.2</td></tr>\n",
"\t<tr><th scope=row>18</th><td>13</td><td>79.3</td></tr>\n",
"\t<tr><th scope=row>19</th><td>53</td><td>35</td></tr>\n",
"\t<tr><th scope=row>20</th><td>29</td><td>44.7</td></tr>\n",
"\t<tr><th scope=row>21</th><td>29</td><td>42.8</td></tr>\n",
"</tbody>\n",
"</table>\n"
],
"text/latex": [
"\\begin{tabular}{r|ll}\n",
" & Education & Fertility\\\\\n",
"\\hline\n",
"\t1 & 9 & 83.1\\\\\n",
"\t2 & 5 & 92.5\\\\\n",
"\t3 & 7 & 85.8\\\\\n",
"\t4 & 7 & 76.1\\\\\n",
"\t5 & 7 & 83.8\\\\\n",
"\t6 & 8 & 92.4\\\\\n",
"\t7 & 7 & 82.4\\\\\n",
"\t8 & 13 & 82.9\\\\\n",
"\t9 & 6 & 87.1\\\\\n",
"\t10 & 2 & 68.3\\\\\n",
"\t11 & 2 & 75.5\\\\\n",
"\t12 & 6 & 69.3\\\\\n",
"\t13 & 2 & 77.3\\\\\n",
"\t14 & 6 & 70.5\\\\\n",
"\t15 & 3 & 79.4\\\\\n",
"\t16 & 9 & 65\\\\\n",
"\t17 & 3 & 92.2\\\\\n",
"\t18 & 13 & 79.3\\\\\n",
"\t19 & 53 & 35\\\\\n",
"\t20 & 29 & 44.7\\\\\n",
"\t21 & 29 & 42.8\\\\\n",
"\\end{tabular}\n"
],
"text/plain": [
"Source: local data frame [21 x 2]\n",
"\n",
" Education Fertility\n",
" (int) (dbl)\n",
"1 9 83.1\n",
"2 5 92.5\n",
"3 7 85.8\n",
"4 7 76.1\n",
"5 7 83.8\n",
"6 8 92.4\n",
"7 7 82.4\n",
"8 13 82.9\n",
"9 6 87.1\n",
"10 2 68.3\n",
".. ... ..."
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ds2 %>%\n",
" filter(Catholic > 20) %>%\n",
" select(Education, Fertility) "
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<table>\n",
"<thead><tr><th></th><th scope=col>County</th><th scope=col>Education</th><th scope=col>Fertility</th><th scope=col>Agriculture</th><th scope=col>infertile</th><th scope=col>testing</th></tr></thead>\n",
"<tbody>\n",
"\t<tr><th scope=row>1</th><td>Echallens</td><td>2</td><td>68.3</td><td>72.6</td><td>no</td><td>Yes</td></tr>\n",
"\t<tr><th scope=row>2</th><td>Conthey</td><td>2</td><td>75.5</td><td>85.9</td><td>no</td><td>Yes</td></tr>\n",
"\t<tr><th scope=row>3</th><td>Herens</td><td>2</td><td>77.3</td><td>89.7</td><td>no</td><td>Yes</td></tr>\n",
"\t<tr><th scope=row>4</th><td>Monthey</td><td>3</td><td>79.4</td><td>64.9</td><td>no</td><td>Yes</td></tr>\n",
"\t<tr><th scope=row>5</th><td>Sierre</td><td>3</td><td>92.2</td><td>84.6</td><td>no</td><td>Yes</td></tr>\n",
"\t<tr><th scope=row>6</th><td>Franches-Mnt</td><td>5</td><td>92.5</td><td>39.7</td><td>no</td><td>Yes</td></tr>\n",
"\t<tr><th scope=row>7</th><td>Veveyse</td><td>6</td><td>87.1</td><td>64.5</td><td>no</td><td>Yes</td></tr>\n",
"\t<tr><th scope=row>8</th><td>Entremont</td><td>6</td><td>69.3</td><td>84.9</td><td>no</td><td>Yes</td></tr>\n",
"\t<tr><th scope=row>9</th><td>Martigwy</td><td>6</td><td>70.5</td><td>78.2</td><td>no</td><td>Yes</td></tr>\n",
"\t<tr><th scope=row>10</th><td>Moutier</td><td>7</td><td>85.8</td><td>36.5</td><td>no</td><td>Yes</td></tr>\n",
"\t<tr><th scope=row>11</th><td>Porrentruy</td><td>7</td><td>76.1</td><td>35.3</td><td>no</td><td>Yes</td></tr>\n",
"\t<tr><th scope=row>12</th><td>Broye</td><td>7</td><td>83.8</td><td>70.2</td><td>no</td><td>Yes</td></tr>\n",
"\t<tr><th scope=row>13</th><td>Gruyere</td><td>7</td><td>82.4</td><td>53.3</td><td>no</td><td>Yes</td></tr>\n",
"\t<tr><th scope=row>14</th><td>Glane</td><td>8</td><td>92.4</td><td>67.8</td><td>no</td><td>Yes</td></tr>\n",
"\t<tr><th scope=row>15</th><td>Delemont</td><td>9</td><td>83.1</td><td>45.1</td><td>no</td><td>Yes</td></tr>\n",
"\t<tr><th scope=row>16</th><td>St Maurice</td><td>9</td><td>65</td><td>75.9</td><td>no</td><td>Yes</td></tr>\n",
"\t<tr><th scope=row>17</th><td>Sarine</td><td>13</td><td>82.9</td><td>45.2</td><td>no</td><td>Yes</td></tr>\n",
"\t<tr><th scope=row>18</th><td>Sion</td><td>13</td><td>79.3</td><td>63.1</td><td>no</td><td>Yes</td></tr>\n",
"\t<tr><th scope=row>19</th><td>Rive Droite</td><td>29</td><td>44.7</td><td>46.6</td><td>yes</td><td>Yes</td></tr>\n",
"\t<tr><th scope=row>20</th><td>Rive Gauche</td><td>29</td><td>42.8</td><td>27.7</td><td>yes</td><td>Yes</td></tr>\n",
"\t<tr><th scope=row>21</th><td>V. De Geneve</td><td>53</td><td>35</td><td>1.2</td><td>yes</td><td>Yes</td></tr>\n",
"</tbody>\n",
"</table>\n"
],
"text/latex": [
"\\begin{tabular}{r|llllll}\n",
" & County & Education & Fertility & Agriculture & infertile & testing\\\\\n",
"\\hline\n",
"\t1 & Echallens & 2 & 68.3 & 72.6 & no & Yes\\\\\n",
"\t2 & Conthey & 2 & 75.5 & 85.9 & no & Yes\\\\\n",
"\t3 & Herens & 2 & 77.3 & 89.7 & no & Yes\\\\\n",
"\t4 & Monthey & 3 & 79.4 & 64.9 & no & Yes\\\\\n",
"\t5 & Sierre & 3 & 92.2 & 84.6 & no & Yes\\\\\n",
"\t6 & Franches-Mnt & 5 & 92.5 & 39.7 & no & Yes\\\\\n",
"\t7 & Veveyse & 6 & 87.1 & 64.5 & no & Yes\\\\\n",
"\t8 & Entremont & 6 & 69.3 & 84.9 & no & Yes\\\\\n",
"\t9 & Martigwy & 6 & 70.5 & 78.2 & no & Yes\\\\\n",
"\t10 & Moutier & 7 & 85.8 & 36.5 & no & Yes\\\\\n",
"\t11 & Porrentruy & 7 & 76.1 & 35.3 & no & Yes\\\\\n",
"\t12 & Broye & 7 & 83.8 & 70.2 & no & Yes\\\\\n",
"\t13 & Gruyere & 7 & 82.4 & 53.3 & no & Yes\\\\\n",
"\t14 & Glane & 8 & 92.4 & 67.8 & no & Yes\\\\\n",
"\t15 & Delemont & 9 & 83.1 & 45.1 & no & Yes\\\\\n",
"\t16 & St Maurice & 9 & 65 & 75.9 & no & Yes\\\\\n",
"\t17 & Sarine & 13 & 82.9 & 45.2 & no & Yes\\\\\n",
"\t18 & Sion & 13 & 79.3 & 63.1 & no & Yes\\\\\n",
"\t19 & Rive Droite & 29 & 44.7 & 46.6 & yes & Yes\\\\\n",
"\t20 & Rive Gauche & 29 & 42.8 & 27.7 & yes & Yes\\\\\n",
"\t21 & V. De Geneve & 53 & 35 & 1.2 & yes & Yes\\\\\n",
"\\end{tabular}\n"
],
"text/plain": [
"Source: local data frame [21 x 6]\n",
"\n",
" County Education Fertility Agriculture infertile testing\n",
" (fctr) (int) (dbl) (dbl) (chr) (chr)\n",
"1 Echallens 2 68.3 72.6 no Yes\n",
"2 Conthey 2 75.5 85.9 no Yes\n",
"3 Herens 2 77.3 89.7 no Yes\n",
"4 Monthey 3 79.4 64.9 no Yes\n",
"5 Sierre 3 92.2 84.6 no Yes\n",
"6 Franches-Mnt 5 92.5 39.7 no Yes\n",
"7 Veveyse 6 87.1 64.5 no Yes\n",
"8 Entremont 6 69.3 84.9 no Yes\n",
"9 Martigwy 6 70.5 78.2 no Yes\n",
"10 Moutier 7 85.8 36.5 no Yes\n",
".. ... ... ... ... ... ..."
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ds2 %>%\n",
" filter(Catholic > 20) %>%\n",
" select(County = X, Education, Fertility, Agriculture) %>%\n",
" arrange(Education) %>%\n",
" mutate(infertile = ifelse(Fertility < 50, 'yes', 'no'),\n",
" testing = 'Yes' ## Create a testing column to show how mutate works.\n",
" )"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"To get the data into a nicer and more analysable format, you can use\n",
"the `tidyr` package. See what `gather` does in the code below. Then\n",
"see what `spread` does. Note that you can remove a column by having a\n",
"minus `-` sign in front of a variable when you use `select`."
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"library(tidyr)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Compare this:"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<table>\n",
"<thead><tr><th></th><th scope=col>County</th><th scope=col>Fertility</th><th scope=col>Agriculture</th><th scope=col>Examination</th><th scope=col>Education</th><th scope=col>Catholic</th></tr></thead>\n",
"<tbody>\n",
"\t<tr><th scope=row>1</th><td>Courtelary</td><td>80.2</td><td>17</td><td>15</td><td>12</td><td>9.96</td></tr>\n",
"\t<tr><th scope=row>2</th><td>Delemont</td><td>83.1</td><td>45.1</td><td>6</td><td>9</td><td>84.84</td></tr>\n",
"\t<tr><th scope=row>3</th><td>Franches-Mnt</td><td>92.5</td><td>39.7</td><td>5</td><td>5</td><td>93.4</td></tr>\n",
"\t<tr><th scope=row>4</th><td>Moutier</td><td>85.8</td><td>36.5</td><td>12</td><td>7</td><td>33.77</td></tr>\n",
"\t<tr><th scope=row>5</th><td>Neuveville</td><td>76.9</td><td>43.5</td><td>17</td><td>15</td><td>5.16</td></tr>\n",
"\t<tr><th scope=row>6</th><td>Porrentruy</td><td>76.1</td><td>35.3</td><td>9</td><td>7</td><td>90.57</td></tr>\n",
"\t<tr><th scope=row>7</th><td>Broye</td><td>83.8</td><td>70.2</td><td>16</td><td>7</td><td>92.85</td></tr>\n",
"\t<tr><th scope=row>8</th><td>Glane</td><td>92.4</td><td>67.8</td><td>14</td><td>8</td><td>97.16</td></tr>\n",
"\t<tr><th scope=row>9</th><td>Gruyere</td><td>82.4</td><td>53.3</td><td>12</td><td>7</td><td>97.67</td></tr>\n",
"\t<tr><th scope=row>10</th><td>Sarine</td><td>82.9</td><td>45.2</td><td>16</td><td>13</td><td>91.38</td></tr>\n",
"\t<tr><th scope=row>11</th><td>Veveyse</td><td>87.1</td><td>64.5</td><td>14</td><td>6</td><td>98.61</td></tr>\n",
"\t<tr><th scope=row>12</th><td>Aigle</td><td>64.1</td><td>62</td><td>21</td><td>12</td><td>8.52</td></tr>\n",
"\t<tr><th scope=row>13</th><td>Aubonne</td><td>66.9</td><td>67.5</td><td>14</td><td>7</td><td>2.27</td></tr>\n",
"\t<tr><th scope=row>14</th><td>Avenches</td><td>68.9</td><td>60.7</td><td>19</td><td>12</td><td>4.43</td></tr>\n",
"\t<tr><th scope=row>15</th><td>Cossonay</td><td>61.7</td><td>69.3</td><td>22</td><td>5</td><td>2.82</td></tr>\n",
"\t<tr><th scope=row>16</th><td>Echallens</td><td>68.3</td><td>72.6</td><td>18</td><td>2</td><td>24.2</td></tr>\n",
"\t<tr><th scope=row>17</th><td>Grandson</td><td>71.7</td><td>34</td><td>17</td><td>8</td><td>3.3</td></tr>\n",
"\t<tr><th scope=row>18</th><td>Lausanne</td><td>55.7</td><td>19.4</td><td>26</td><td>28</td><td>12.11</td></tr>\n",
"\t<tr><th scope=row>19</th><td>La Vallee</td><td>54.3</td><td>15.2</td><td>31</td><td>20</td><td>2.15</td></tr>\n",
"\t<tr><th scope=row>20</th><td>Lavaux</td><td>65.1</td><td>73</td><td>19</td><td>9</td><td>2.84</td></tr>\n",
"\t<tr><th scope=row>21</th><td>Morges</td><td>65.5</td><td>59.8</td><td>22</td><td>10</td><td>5.23</td></tr>\n",
"\t<tr><th scope=row>22</th><td>Moudon</td><td>65</td><td>55.1</td><td>14</td><td>3</td><td>4.52</td></tr>\n",
"\t<tr><th scope=row>23</th><td>Nyone</td><td>56.6</td><td>50.9</td><td>22</td><td>12</td><td>15.14</td></tr>\n",
"\t<tr><th scope=row>24</th><td>Orbe</td><td>57.4</td><td>54.1</td><td>20</td><td>6</td><td>4.2</td></tr>\n",
"\t<tr><th scope=row>25</th><td>Oron</td><td>72.5</td><td>71.2</td><td>12</td><td>1</td><td>2.4</td></tr>\n",
"\t<tr><th scope=row>26</th><td>Payerne</td><td>74.2</td><td>58.1</td><td>14</td><td>8</td><td>5.23</td></tr>\n",
"\t<tr><th scope=row>27</th><td>Paysd'enhaut</td><td>72</td><td>63.5</td><td>6</td><td>3</td><td>2.56</td></tr>\n",
"\t<tr><th scope=row>28</th><td>Rolle</td><td>60.5</td><td>60.8</td><td>16</td><td>10</td><td>7.72</td></tr>\n",
"\t<tr><th scope=row>29</th><td>Vevey</td><td>58.3</td><td>26.8</td><td>25</td><td>19</td><td>18.46</td></tr>\n",
"\t<tr><th scope=row>30</th><td>Yverdon</td><td>65.4</td><td>49.5</td><td>15</td><td>8</td><td>6.1</td></tr>\n",
"\t<tr><th scope=row>31</th><td>Conthey</td><td>75.5</td><td>85.9</td><td>3</td><td>2</td><td>99.71</td></tr>\n",
"\t<tr><th scope=row>32</th><td>Entremont</td><td>69.3</td><td>84.9</td><td>7</td><td>6</td><td>99.68</td></tr>\n",
"\t<tr><th scope=row>33</th><td>Herens</td><td>77.3</td><td>89.7</td><td>5</td><td>2</td><td>100</td></tr>\n",
"\t<tr><th scope=row>34</th><td>Martigwy</td><td>70.5</td><td>78.2</td><td>12</td><td>6</td><td>98.96</td></tr>\n",
"\t<tr><th scope=row>35</th><td>Monthey</td><td>79.4</td><td>64.9</td><td>7</td><td>3</td><td>98.22</td></tr>\n",
"\t<tr><th scope=row>36</th><td>St Maurice</td><td>65</td><td>75.9</td><td>9</td><td>9</td><td>99.06</td></tr>\n",
"\t<tr><th scope=row>37</th><td>Sierre</td><td>92.2</td><td>84.6</td><td>3</td><td>3</td><td>99.46</td></tr>\n",
"\t<tr><th scope=row>38</th><td>Sion</td><td>79.3</td><td>63.1</td><td>13</td><td>13</td><td>96.83</td></tr>\n",
"\t<tr><th scope=row>39</th><td>Boudry</td><td>70.4</td><td>38.4</td><td>26</td><td>12</td><td>5.62</td></tr>\n",
"\t<tr><th scope=row>40</th><td>La Chauxdfnd</td><td>65.7</td><td>7.7</td><td>29</td><td>11</td><td>13.79</td></tr>\n",
"\t<tr><th scope=row>41</th><td>Le Locle</td><td>72.7</td><td>16.7</td><td>22</td><td>13</td><td>11.22</td></tr>\n",
"\t<tr><th scope=row>42</th><td>Neuchatel</td><td>64.4</td><td>17.6</td><td>35</td><td>32</td><td>16.92</td></tr>\n",
"\t<tr><th scope=row>43</th><td>Val de Ruz</td><td>77.6</td><td>37.6</td><td>15</td><td>7</td><td>4.97</td></tr>\n",
"\t<tr><th scope=row>44</th><td>ValdeTravers</td><td>67.6</td><td>18.7</td><td>25</td><td>7</td><td>8.65</td></tr>\n",
"\t<tr><th scope=row>45</th><td>V. De Geneve</td><td>35</td><td>1.2</td><td>37</td><td>53</td><td>42.34</td></tr>\n",
"\t<tr><th scope=row>46</th><td>Rive Droite</td><td>44.7</td><td>46.6</td><td>16</td><td>29</td><td>50.43</td></tr>\n",
"\t<tr><th scope=row>47</th><td>Rive Gauche</td><td>42.8</td><td>27.7</td><td>22</td><td>29</td><td>58.33</td></tr>\n",
"</tbody>\n",
"</table>\n"
],
"text/latex": [
"\\begin{tabular}{r|llllll}\n",
" & County & Fertility & Agriculture & Examination & Education & Catholic\\\\\n",
"\\hline\n",
"\t1 & Courtelary & 80.2 & 17 & 15 & 12 & 9.96\\\\\n",
"\t2 & Delemont & 83.1 & 45.1 & 6 & 9 & 84.84\\\\\n",
"\t3 & Franches-Mnt & 92.5 & 39.7 & 5 & 5 & 93.4\\\\\n",
"\t4 & Moutier & 85.8 & 36.5 & 12 & 7 & 33.77\\\\\n",
"\t5 & Neuveville & 76.9 & 43.5 & 17 & 15 & 5.16\\\\\n",
"\t6 & Porrentruy & 76.1 & 35.3 & 9 & 7 & 90.57\\\\\n",
"\t7 & Broye & 83.8 & 70.2 & 16 & 7 & 92.85\\\\\n",
"\t8 & Glane & 92.4 & 67.8 & 14 & 8 & 97.16\\\\\n",
"\t9 & Gruyere & 82.4 & 53.3 & 12 & 7 & 97.67\\\\\n",
"\t10 & Sarine & 82.9 & 45.2 & 16 & 13 & 91.38\\\\\n",
"\t11 & Veveyse & 87.1 & 64.5 & 14 & 6 & 98.61\\\\\n",
"\t12 & Aigle & 64.1 & 62 & 21 & 12 & 8.52\\\\\n",
"\t13 & Aubonne & 66.9 & 67.5 & 14 & 7 & 2.27\\\\\n",
"\t14 & Avenches & 68.9 & 60.7 & 19 & 12 & 4.43\\\\\n",
"\t15 & Cossonay & 61.7 & 69.3 & 22 & 5 & 2.82\\\\\n",
"\t16 & Echallens & 68.3 & 72.6 & 18 & 2 & 24.2\\\\\n",
"\t17 & Grandson & 71.7 & 34 & 17 & 8 & 3.3\\\\\n",
"\t18 & Lausanne & 55.7 & 19.4 & 26 & 28 & 12.11\\\\\n",
"\t19 & La Vallee & 54.3 & 15.2 & 31 & 20 & 2.15\\\\\n",
"\t20 & Lavaux & 65.1 & 73 & 19 & 9 & 2.84\\\\\n",
"\t21 & Morges & 65.5 & 59.8 & 22 & 10 & 5.23\\\\\n",
"\t22 & Moudon & 65 & 55.1 & 14 & 3 & 4.52\\\\\n",
"\t23 & Nyone & 56.6 & 50.9 & 22 & 12 & 15.14\\\\\n",
"\t24 & Orbe & 57.4 & 54.1 & 20 & 6 & 4.2\\\\\n",
"\t25 & Oron & 72.5 & 71.2 & 12 & 1 & 2.4\\\\\n",
"\t26 & Payerne & 74.2 & 58.1 & 14 & 8 & 5.23\\\\\n",
"\t27 & Paysd'enhaut & 72 & 63.5 & 6 & 3 & 2.56\\\\\n",
"\t28 & Rolle & 60.5 & 60.8 & 16 & 10 & 7.72\\\\\n",
"\t29 & Vevey & 58.3 & 26.8 & 25 & 19 & 18.46\\\\\n",
"\t30 & Yverdon & 65.4 & 49.5 & 15 & 8 & 6.1\\\\\n",
"\t31 & Conthey & 75.5 & 85.9 & 3 & 2 & 99.71\\\\\n",
"\t32 & Entremont & 69.3 & 84.9 & 7 & 6 & 99.68\\\\\n",
"\t33 & Herens & 77.3 & 89.7 & 5 & 2 & 100\\\\\n",
"\t34 & Martigwy & 70.5 & 78.2 & 12 & 6 & 98.96\\\\\n",
"\t35 & Monthey & 79.4 & 64.9 & 7 & 3 & 98.22\\\\\n",
"\t36 & St Maurice & 65 & 75.9 & 9 & 9 & 99.06\\\\\n",
"\t37 & Sierre & 92.2 & 84.6 & 3 & 3 & 99.46\\\\\n",
"\t38 & Sion & 79.3 & 63.1 & 13 & 13 & 96.83\\\\\n",
"\t39 & Boudry & 70.4 & 38.4 & 26 & 12 & 5.62\\\\\n",
"\t40 & La Chauxdfnd & 65.7 & 7.7 & 29 & 11 & 13.79\\\\\n",
"\t41 & Le Locle & 72.7 & 16.7 & 22 & 13 & 11.22\\\\\n",
"\t42 & Neuchatel & 64.4 & 17.6 & 35 & 32 & 16.92\\\\\n",
"\t43 & Val de Ruz & 77.6 & 37.6 & 15 & 7 & 4.97\\\\\n",
"\t44 & ValdeTravers & 67.6 & 18.7 & 25 & 7 & 8.65\\\\\n",
"\t45 & V. De Geneve & 35 & 1.2 & 37 & 53 & 42.34\\\\\n",
"\t46 & Rive Droite & 44.7 & 46.6 & 16 & 29 & 50.43\\\\\n",
"\t47 & Rive Gauche & 42.8 & 27.7 & 22 & 29 & 58.33\\\\\n",
"\\end{tabular}\n"
],
"text/plain": [
"Source: local data frame [47 x 6]\n",
"\n",
" County Fertility Agriculture Examination Education Catholic\n",
" (fctr) (dbl) (dbl) (int) (int) (dbl)\n",
"1 Courtelary 80.2 17.0 15 12 9.96\n",
"2 Delemont 83.1 45.1 6 9 84.84\n",
"3 Franches-Mnt 92.5 39.7 5 5 93.40\n",
"4 Moutier 85.8 36.5 12 7 33.77\n",
"5 Neuveville 76.9 43.5 17 15 5.16\n",
"6 Porrentruy 76.1 35.3 9 7 90.57\n",
"7 Broye 83.8 70.2 16 7 92.85\n",
"8 Glane 92.4 67.8 14 8 97.16\n",
"9 Gruyere 82.4 53.3 12 7 97.67\n",
"10 Sarine 82.9 45.2 16 13 91.38\n",
".. ... ... ... ... ... ..."
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ds2 %>%\n",
" select(-Infant.Mortality) %>%\n",
" rename(County = X)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## With this:"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"Warning message:\n",
"In `[<-.factor`(`*tmp*`, ri, value = \"⋮\"): invalid factor level, NA generatedWarning message:\n",
"In `[<-.factor`(`*tmp*`, ri, value = \"⋮\"): invalid factor level, NA generatedWarning message:\n",
"In `[<-.factor`(`*tmp*`, ri, value = \"⋮\"): invalid factor level, NA generatedWarning message:\n",
"In `[<-.factor`(`*tmp*`, ri, value = \"⋮\"): invalid factor level, NA generated"
]
},
{
"data": {
"text/html": [
"<table>\n",
"<thead><tr><th></th><th scope=col>County</th><th scope=col>Measure</th><th scope=col>Value</th></tr></thead>\n",
"<tbody>\n",
"\t<tr><th scope=row>1</th><td>Courtelary</td><td>Fertility</td><td>80.2</td></tr>\n",
"\t<tr><th scope=row>2</th><td>Delemont</td><td>Fertility</td><td>83.1</td></tr>\n",
"\t<tr><th scope=row>3</th><td>Franches-Mnt</td><td>Fertility</td><td>92.5</td></tr>\n",
"\t<tr><th scope=row>4</th><td>Moutier</td><td>Fertility</td><td>85.8</td></tr>\n",
"\t<tr><th scope=row>5</th><td>Neuveville</td><td>Fertility</td><td>76.9</td></tr>\n",
"\t<tr><th scope=row>6</th><td>Porrentruy</td><td>Fertility</td><td>76.1</td></tr>\n",
"\t<tr><th scope=row>7</th><td>Broye</td><td>Fertility</td><td>83.8</td></tr>\n",
"\t<tr><th scope=row>8</th><td>Glane</td><td>Fertility</td><td>92.4</td></tr>\n",
"\t<tr><th scope=row>9</th><td>Gruyere</td><td>Fertility</td><td>82.4</td></tr>\n",
"\t<tr><th scope=row>10</th><td>Sarine</td><td>Fertility</td><td>82.9</td></tr>\n",
"\t<tr><th scope=row>11</th><td>Veveyse</td><td>Fertility</td><td>87.1</td></tr>\n",
"\t<tr><th scope=row>12</th><td>Aigle</td><td>Fertility</td><td>64.1</td></tr>\n",
"\t<tr><th scope=row>13</th><td>Aubonne</td><td>Fertility</td><td>66.9</td></tr>\n",
"\t<tr><th scope=row>14</th><td>Avenches</td><td>Fertility</td><td>68.9</td></tr>\n",
"\t<tr><th scope=row>15</th><td>Cossonay</td><td>Fertility</td><td>61.7</td></tr>\n",
"\t<tr><th scope=row>16</th><td>Echallens</td><td>Fertility</td><td>68.3</td></tr>\n",
"\t<tr><th scope=row>17</th><td>Grandson</td><td>Fertility</td><td>71.7</td></tr>\n",
"\t<tr><th scope=row>18</th><td>Lausanne</td><td>Fertility</td><td>55.7</td></tr>\n",
"\t<tr><th scope=row>19</th><td>La Vallee</td><td>Fertility</td><td>54.3</td></tr>\n",
"\t<tr><th scope=row>20</th><td>Lavaux</td><td>Fertility</td><td>65.1</td></tr>\n",
"\t<tr><th scope=row>21</th><td>Morges</td><td>Fertility</td><td>65.5</td></tr>\n",
"\t<tr><th scope=row>22</th><td>Moudon</td><td>Fertility</td><td>65</td></tr>\n",
"\t<tr><th scope=row>23</th><td>Nyone</td><td>Fertility</td><td>56.6</td></tr>\n",
"\t<tr><th scope=row>24</th><td>Orbe</td><td>Fertility</td><td>57.4</td></tr>\n",
"\t<tr><th scope=row>25</th><td>Oron</td><td>Fertility</td><td>72.5</td></tr>\n",
"\t<tr><th scope=row>26</th><td>Payerne</td><td>Fertility</td><td>74.2</td></tr>\n",
"\t<tr><th scope=row>27</th><td>Paysd'enhaut</td><td>Fertility</td><td>72</td></tr>\n",
"\t<tr><th scope=row>28</th><td>Rolle</td><td>Fertility</td><td>60.5</td></tr>\n",
"\t<tr><th scope=row>29</th><td>Vevey</td><td>Fertility</td><td>58.3</td></tr>\n",
"\t<tr><th scope=row>30</th><td>Yverdon</td><td>Fertility</td><td>65.4</td></tr>\n",
"\t<tr><th scope=row>31</th><td>NA</td><td>NA</td><td>⋮</td></tr>\n",
"\t<tr><th scope=row>32</th><td>Lausanne</td><td>Catholic</td><td>12.11</td></tr>\n",
"\t<tr><th scope=row>33</th><td>La Vallee</td><td>Catholic</td><td>2.15</td></tr>\n",
"\t<tr><th scope=row>34</th><td>Lavaux</td><td>Catholic</td><td>2.84</td></tr>\n",
"\t<tr><th scope=row>35</th><td>Morges</td><td>Catholic</td><td>5.23</td></tr>\n",
"\t<tr><th scope=row>36</th><td>Moudon</td><td>Catholic</td><td>4.52</td></tr>\n",
"\t<tr><th scope=row>37</th><td>Nyone</td><td>Catholic</td><td>15.14</td></tr>\n",
"\t<tr><th scope=row>38</th><td>Orbe</td><td>Catholic</td><td>4.2</td></tr>\n",
"\t<tr><th scope=row>39</th><td>Oron</td><td>Catholic</td><td>2.4</td></tr>\n",
"\t<tr><th scope=row>40</th><td>Payerne</td><td>Catholic</td><td>5.23</td></tr>\n",
"\t<tr><th scope=row>41</th><td>Paysd'enhaut</td><td>Catholic</td><td>2.56</td></tr>\n",
"\t<tr><th scope=row>42</th><td>Rolle</td><td>Catholic</td><td>7.72</td></tr>\n",
"\t<tr><th scope=row>43</th><td>Vevey</td><td>Catholic</td><td>18.46</td></tr>\n",
"\t<tr><th scope=row>44</th><td>Yverdon</td><td>Catholic</td><td>6.1</td></tr>\n",
"\t<tr><th scope=row>45</th><td>Conthey</td><td>Catholic</td><td>99.71</td></tr>\n",
"\t<tr><th scope=row>46</th><td>Entremont</td><td>Catholic</td><td>99.68</td></tr>\n",
"\t<tr><th scope=row>47</th><td>Herens</td><td>Catholic</td><td>100</td></tr>\n",
"\t<tr><th scope=row>48</th><td>Martigwy</td><td>Catholic</td><td>98.96</td></tr>\n",
"\t<tr><th scope=row>49</th><td>Monthey</td><td>Catholic</td><td>98.22</td></tr>\n",
"\t<tr><th scope=row>50</th><td>St Maurice</td><td>Catholic</td><td>99.06</td></tr>\n",
"\t<tr><th scope=row>51</th><td>Sierre</td><td>Catholic</td><td>99.46</td></tr>\n",
"\t<tr><th scope=row>52</th><td>Sion</td><td>Catholic</td><td>96.83</td></tr>\n",
"\t<tr><th scope=row>53</th><td>Boudry</td><td>Catholic</td><td>5.62</td></tr>\n",
"\t<tr><th scope=row>54</th><td>La Chauxdfnd</td><td>Catholic</td><td>13.79</td></tr>\n",
"\t<tr><th scope=row>55</th><td>Le Locle</td><td>Catholic</td><td>11.22</td></tr>\n",
"\t<tr><th scope=row>56</th><td>Neuchatel</td><td>Catholic</td><td>16.92</td></tr>\n",
"\t<tr><th scope=row>57</th><td>Val de Ruz</td><td>Catholic</td><td>4.97</td></tr>\n",
"\t<tr><th scope=row>58</th><td>ValdeTravers</td><td>Catholic</td><td>8.65</td></tr>\n",
"\t<tr><th scope=row>59</th><td>V. De Geneve</td><td>Catholic</td><td>42.34</td></tr>\n",
"\t<tr><th scope=row>60</th><td>Rive Droite</td><td>Catholic</td><td>50.43</td></tr>\n",
"\t<tr><th scope=row>61</th><td>Rive Gauche</td><td>Catholic</td><td>58.33</td></tr>\n",
"</tbody>\n",
"</table>\n"
],
"text/latex": [
"\\begin{tabular}{r|lll}\n",
" & County & Measure & Value\\\\\n",
"\\hline\n",
"\t1 & Courtelary & Fertility & 80.2\\\\\n",
"\t2 & Delemont & Fertility & 83.1\\\\\n",
"\t3 & Franches-Mnt & Fertility & 92.5\\\\\n",
"\t4 & Moutier & Fertility & 85.8\\\\\n",
"\t5 & Neuveville & Fertility & 76.9\\\\\n",
"\t6 & Porrentruy & Fertility & 76.1\\\\\n",
"\t7 & Broye & Fertility & 83.8\\\\\n",
"\t8 & Glane & Fertility & 92.4\\\\\n",
"\t9 & Gruyere & Fertility & 82.4\\\\\n",
"\t10 & Sarine & Fertility & 82.9\\\\\n",
"\t11 & Veveyse & Fertility & 87.1\\\\\n",
"\t12 & Aigle & Fertility & 64.1\\\\\n",
"\t13 & Aubonne & Fertility & 66.9\\\\\n",
"\t14 & Avenches & Fertility & 68.9\\\\\n",
"\t15 & Cossonay & Fertility & 61.7\\\\\n",
"\t16 & Echallens & Fertility & 68.3\\\\\n",
"\t17 & Grandson & Fertility & 71.7\\\\\n",
"\t18 & Lausanne & Fertility & 55.7\\\\\n",
"\t19 & La Vallee & Fertility & 54.3\\\\\n",
"\t20 & Lavaux & Fertility & 65.1\\\\\n",
"\t21 & Morges & Fertility & 65.5\\\\\n",
"\t22 & Moudon & Fertility & 65\\\\\n",
"\t23 & Nyone & Fertility & 56.6\\\\\n",
"\t24 & Orbe & Fertility & 57.4\\\\\n",
"\t25 & Oron & Fertility & 72.5\\\\\n",
"\t26 & Payerne & Fertility & 74.2\\\\\n",
"\t27 & Paysd'enhaut & Fertility & 72\\\\\n",
"\t28 & Rolle & Fertility & 60.5\\\\\n",
"\t29 & Vevey & Fertility & 58.3\\\\\n",
"\t30 & Yverdon & Fertility & 65.4\\\\\n",
"\t31 & NA & NA & ⋮\\\\\n",
"\t32 & Lausanne & Catholic & 12.11\\\\\n",
"\t33 & La Vallee & Catholic & 2.15\\\\\n",
"\t34 & Lavaux & Catholic & 2.84\\\\\n",
"\t35 & Morges & Catholic & 5.23\\\\\n",
"\t36 & Moudon & Catholic & 4.52\\\\\n",
"\t37 & Nyone & Catholic & 15.14\\\\\n",
"\t38 & Orbe & Catholic & 4.2\\\\\n",
"\t39 & Oron & Catholic & 2.4\\\\\n",
"\t40 & Payerne & Catholic & 5.23\\\\\n",
"\t41 & Paysd'enhaut & Catholic & 2.56\\\\\n",
"\t42 & Rolle & Catholic & 7.72\\\\\n",
"\t43 & Vevey & Catholic & 18.46\\\\\n",
"\t44 & Yverdon & Catholic & 6.1\\\\\n",
"\t45 & Conthey & Catholic & 99.71\\\\\n",
"\t46 & Entremont & Catholic & 99.68\\\\\n",
"\t47 & Herens & Catholic & 100\\\\\n",
"\t48 & Martigwy & Catholic & 98.96\\\\\n",
"\t49 & Monthey & Catholic & 98.22\\\\\n",
"\t50 & St Maurice & Catholic & 99.06\\\\\n",
"\t51 & Sierre & Catholic & 99.46\\\\\n",
"\t52 & Sion & Catholic & 96.83\\\\\n",
"\t53 & Boudry & Catholic & 5.62\\\\\n",
"\t54 & La Chauxdfnd & Catholic & 13.79\\\\\n",
"\t55 & Le Locle & Catholic & 11.22\\\\\n",
"\t56 & Neuchatel & Catholic & 16.92\\\\\n",
"\t57 & Val de Ruz & Catholic & 4.97\\\\\n",
"\t58 & ValdeTravers & Catholic & 8.65\\\\\n",
"\t59 & V. De Geneve & Catholic & 42.34\\\\\n",
"\t60 & Rive Droite & Catholic & 50.43\\\\\n",
"\t61 & Rive Gauche & Catholic & 58.33\\\\\n",
"\\end{tabular}\n"
],
"text/plain": [
"Source: local data frame [235 x 3]\n",
"\n",
" County Measure Value\n",
" (fctr) (fctr) (dbl)\n",
"1 Courtelary Fertility 80.2\n",
"2 Delemont Fertility 83.1\n",
"3 Franches-Mnt Fertility 92.5\n",
"4 Moutier Fertility 85.8\n",
"5 Neuveville Fertility 76.9\n",
"6 Porrentruy Fertility 76.1\n",
"7 Broye Fertility 83.8\n",
"8 Glane Fertility 92.4\n",
"9 Gruyere Fertility 82.4\n",
"10 Sarine Fertility 82.9\n",
".. ... ... ..."
]
},
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ds2 %>%\n",
" select(-Infant.Mortality) %>%\n",
" rename(County = X) %>%\n",
" gather(Measure, Value, -County)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## And back again:"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<table>\n",
"<thead><tr><th></th><th scope=col>County</th><th scope=col>Fertility</th><th scope=col>Agriculture</th><th scope=col>Examination</th><th scope=col>Education</th><th scope=col>Catholic</th></tr></thead>\n",
"<tbody>\n",
"\t<tr><th scope=row>1</th><td>Aigle</td><td>64.1</td><td>62</td><td>21</td><td>12</td><td>8.52</td></tr>\n",
"\t<tr><th scope=row>2</th><td>Aubonne</td><td>66.9</td><td>67.5</td><td>14</td><td>7</td><td>2.27</td></tr>\n",
"\t<tr><th scope=row>3</th><td>Avenches</td><td>68.9</td><td>60.7</td><td>19</td><td>12</td><td>4.43</td></tr>\n",
"\t<tr><th scope=row>4</th><td>Boudry</td><td>70.4</td><td>38.4</td><td>26</td><td>12</td><td>5.62</td></tr>\n",
"\t<tr><th scope=row>5</th><td>Broye</td><td>83.8</td><td>70.2</td><td>16</td><td>7</td><td>92.85</td></tr>\n",
"\t<tr><th scope=row>6</th><td>Conthey</td><td>75.5</td><td>85.9</td><td>3</td><td>2</td><td>99.71</td></tr>\n",
"\t<tr><th scope=row>7</th><td>Cossonay</td><td>61.7</td><td>69.3</td><td>22</td><td>5</td><td>2.82</td></tr>\n",
"\t<tr><th scope=row>8</th><td>Courtelary</td><td>80.2</td><td>17</td><td>15</td><td>12</td><td>9.96</td></tr>\n",
"\t<tr><th scope=row>9</th><td>Delemont</td><td>83.1</td><td>45.1</td><td>6</td><td>9</td><td>84.84</td></tr>\n",
"\t<tr><th scope=row>10</th><td>Echallens</td><td>68.3</td><td>72.6</td><td>18</td><td>2</td><td>24.2</td></tr>\n",
"\t<tr><th scope=row>11</th><td>Entremont</td><td>69.3</td><td>84.9</td><td>7</td><td>6</td><td>99.68</td></tr>\n",
"\t<tr><th scope=row>12</th><td>Franches-Mnt</td><td>92.5</td><td>39.7</td><td>5</td><td>5</td><td>93.4</td></tr>\n",
"\t<tr><th scope=row>13</th><td>Glane</td><td>92.4</td><td>67.8</td><td>14</td><td>8</td><td>97.16</td></tr>\n",
"\t<tr><th scope=row>14</th><td>Grandson</td><td>71.7</td><td>34</td><td>17</td><td>8</td><td>3.3</td></tr>\n",
"\t<tr><th scope=row>15</th><td>Gruyere</td><td>82.4</td><td>53.3</td><td>12</td><td>7</td><td>97.67</td></tr>\n",
"\t<tr><th scope=row>16</th><td>Herens</td><td>77.3</td><td>89.7</td><td>5</td><td>2</td><td>100</td></tr>\n",
"\t<tr><th scope=row>17</th><td>La Chauxdfnd</td><td>65.7</td><td>7.7</td><td>29</td><td>11</td><td>13.79</td></tr>\n",
"\t<tr><th scope=row>18</th><td>La Vallee</td><td>54.3</td><td>15.2</td><td>31</td><td>20</td><td>2.15</td></tr>\n",
"\t<tr><th scope=row>19</th><td>Lausanne</td><td>55.7</td><td>19.4</td><td>26</td><td>28</td><td>12.11</td></tr>\n",
"\t<tr><th scope=row>20</th><td>Lavaux</td><td>65.1</td><td>73</td><td>19</td><td>9</td><td>2.84</td></tr>\n",
"\t<tr><th scope=row>21</th><td>Le Locle</td><td>72.7</td><td>16.7</td><td>22</td><td>13</td><td>11.22</td></tr>\n",
"\t<tr><th scope=row>22</th><td>Martigwy</td><td>70.5</td><td>78.2</td><td>12</td><td>6</td><td>98.96</td></tr>\n",
"\t<tr><th scope=row>23</th><td>Monthey</td><td>79.4</td><td>64.9</td><td>7</td><td>3</td><td>98.22</td></tr>\n",
"\t<tr><th scope=row>24</th><td>Morges</td><td>65.5</td><td>59.8</td><td>22</td><td>10</td><td>5.23</td></tr>\n",
"\t<tr><th scope=row>25</th><td>Moudon</td><td>65</td><td>55.1</td><td>14</td><td>3</td><td>4.52</td></tr>\n",
"\t<tr><th scope=row>26</th><td>Moutier</td><td>85.8</td><td>36.5</td><td>12</td><td>7</td><td>33.77</td></tr>\n",
"\t<tr><th scope=row>27</th><td>Neuchatel</td><td>64.4</td><td>17.6</td><td>35</td><td>32</td><td>16.92</td></tr>\n",
"\t<tr><th scope=row>28</th><td>Neuveville</td><td>76.9</td><td>43.5</td><td>17</td><td>15</td><td>5.16</td></tr>\n",
"\t<tr><th scope=row>29</th><td>Nyone</td><td>56.6</td><td>50.9</td><td>22</td><td>12</td><td>15.14</td></tr>\n",
"\t<tr><th scope=row>30</th><td>Orbe</td><td>57.4</td><td>54.1</td><td>20</td><td>6</td><td>4.2</td></tr>\n",
"\t<tr><th scope=row>31</th><td>Oron</td><td>72.5</td><td>71.2</td><td>12</td><td>1</td><td>2.4</td></tr>\n",
"\t<tr><th scope=row>32</th><td>Payerne</td><td>74.2</td><td>58.1</td><td>14</td><td>8</td><td>5.23</td></tr>\n",
"\t<tr><th scope=row>33</th><td>Paysd'enhaut</td><td>72</td><td>63.5</td><td>6</td><td>3</td><td>2.56</td></tr>\n",
"\t<tr><th scope=row>34</th><td>Porrentruy</td><td>76.1</td><td>35.3</td><td>9</td><td>7</td><td>90.57</td></tr>\n",
"\t<tr><th scope=row>35</th><td>Rive Droite</td><td>44.7</td><td>46.6</td><td>16</td><td>29</td><td>50.43</td></tr>\n",
"\t<tr><th scope=row>36</th><td>Rive Gauche</td><td>42.8</td><td>27.7</td><td>22</td><td>29</td><td>58.33</td></tr>\n",
"\t<tr><th scope=row>37</th><td>Rolle</td><td>60.5</td><td>60.8</td><td>16</td><td>10</td><td>7.72</td></tr>\n",
"\t<tr><th scope=row>38</th><td>Sarine</td><td>82.9</td><td>45.2</td><td>16</td><td>13</td><td>91.38</td></tr>\n",
"\t<tr><th scope=row>39</th><td>Sierre</td><td>92.2</td><td>84.6</td><td>3</td><td>3</td><td>99.46</td></tr>\n",
"\t<tr><th scope=row>40</th><td>Sion</td><td>79.3</td><td>63.1</td><td>13</td><td>13</td><td>96.83</td></tr>\n",
"\t<tr><th scope=row>41</th><td>St Maurice</td><td>65</td><td>75.9</td><td>9</td><td>9</td><td>99.06</td></tr>\n",
"\t<tr><th scope=row>42</th><td>V. De Geneve</td><td>35</td><td>1.2</td><td>37</td><td>53</td><td>42.34</td></tr>\n",
"\t<tr><th scope=row>43</th><td>Val de Ruz</td><td>77.6</td><td>37.6</td><td>15</td><td>7</td><td>4.97</td></tr>\n",
"\t<tr><th scope=row>44</th><td>ValdeTravers</td><td>67.6</td><td>18.7</td><td>25</td><td>7</td><td>8.65</td></tr>\n",
"\t<tr><th scope=row>45</th><td>Vevey</td><td>58.3</td><td>26.8</td><td>25</td><td>19</td><td>18.46</td></tr>\n",
"\t<tr><th scope=row>46</th><td>Veveyse</td><td>87.1</td><td>64.5</td><td>14</td><td>6</td><td>98.61</td></tr>\n",
"\t<tr><th scope=row>47</th><td>Yverdon</td><td>65.4</td><td>49.5</td><td>15</td><td>8</td><td>6.1</td></tr>\n",
"</tbody>\n",
"</table>\n"
],
"text/latex": [
"\\begin{tabular}{r|llllll}\n",
" & County & Fertility & Agriculture & Examination & Education & Catholic\\\\\n",
"\\hline\n",
"\t1 & Aigle & 64.1 & 62 & 21 & 12 & 8.52\\\\\n",
"\t2 & Aubonne & 66.9 & 67.5 & 14 & 7 & 2.27\\\\\n",
"\t3 & Avenches & 68.9 & 60.7 & 19 & 12 & 4.43\\\\\n",
"\t4 & Boudry & 70.4 & 38.4 & 26 & 12 & 5.62\\\\\n",
"\t5 & Broye & 83.8 & 70.2 & 16 & 7 & 92.85\\\\\n",
"\t6 & Conthey & 75.5 & 85.9 & 3 & 2 & 99.71\\\\\n",
"\t7 & Cossonay & 61.7 & 69.3 & 22 & 5 & 2.82\\\\\n",
"\t8 & Courtelary & 80.2 & 17 & 15 & 12 & 9.96\\\\\n",
"\t9 & Delemont & 83.1 & 45.1 & 6 & 9 & 84.84\\\\\n",
"\t10 & Echallens & 68.3 & 72.6 & 18 & 2 & 24.2\\\\\n",
"\t11 & Entremont & 69.3 & 84.9 & 7 & 6 & 99.68\\\\\n",
"\t12 & Franches-Mnt & 92.5 & 39.7 & 5 & 5 & 93.4\\\\\n",
"\t13 & Glane & 92.4 & 67.8 & 14 & 8 & 97.16\\\\\n",
"\t14 & Grandson & 71.7 & 34 & 17 & 8 & 3.3\\\\\n",
"\t15 & Gruyere & 82.4 & 53.3 & 12 & 7 & 97.67\\\\\n",
"\t16 & Herens & 77.3 & 89.7 & 5 & 2 & 100\\\\\n",
"\t17 & La Chauxdfnd & 65.7 & 7.7 & 29 & 11 & 13.79\\\\\n",
"\t18 & La Vallee & 54.3 & 15.2 & 31 & 20 & 2.15\\\\\n",
"\t19 & Lausanne & 55.7 & 19.4 & 26 & 28 & 12.11\\\\\n",
"\t20 & Lavaux & 65.1 & 73 & 19 & 9 & 2.84\\\\\n",
"\t21 & Le Locle & 72.7 & 16.7 & 22 & 13 & 11.22\\\\\n",
"\t22 & Martigwy & 70.5 & 78.2 & 12 & 6 & 98.96\\\\\n",
"\t23 & Monthey & 79.4 & 64.9 & 7 & 3 & 98.22\\\\\n",
"\t24 & Morges & 65.5 & 59.8 & 22 & 10 & 5.23\\\\\n",
"\t25 & Moudon & 65 & 55.1 & 14 & 3 & 4.52\\\\\n",
"\t26 & Moutier & 85.8 & 36.5 & 12 & 7 & 33.77\\\\\n",
"\t27 & Neuchatel & 64.4 & 17.6 & 35 & 32 & 16.92\\\\\n",
"\t28 & Neuveville & 76.9 & 43.5 & 17 & 15 & 5.16\\\\\n",
"\t29 & Nyone & 56.6 & 50.9 & 22 & 12 & 15.14\\\\\n",
"\t30 & Orbe & 57.4 & 54.1 & 20 & 6 & 4.2\\\\\n",
"\t31 & Oron & 72.5 & 71.2 & 12 & 1 & 2.4\\\\\n",
"\t32 & Payerne & 74.2 & 58.1 & 14 & 8 & 5.23\\\\\n",
"\t33 & Paysd'enhaut & 72 & 63.5 & 6 & 3 & 2.56\\\\\n",
"\t34 & Porrentruy & 76.1 & 35.3 & 9 & 7 & 90.57\\\\\n",
"\t35 & Rive Droite & 44.7 & 46.6 & 16 & 29 & 50.43\\\\\n",
"\t36 & Rive Gauche & 42.8 & 27.7 & 22 & 29 & 58.33\\\\\n",
"\t37 & Rolle & 60.5 & 60.8 & 16 & 10 & 7.72\\\\\n",
"\t38 & Sarine & 82.9 & 45.2 & 16 & 13 & 91.38\\\\\n",
"\t39 & Sierre & 92.2 & 84.6 & 3 & 3 & 99.46\\\\\n",
"\t40 & Sion & 79.3 & 63.1 & 13 & 13 & 96.83\\\\\n",
"\t41 & St Maurice & 65 & 75.9 & 9 & 9 & 99.06\\\\\n",
"\t42 & V. De Geneve & 35 & 1.2 & 37 & 53 & 42.34\\\\\n",
"\t43 & Val de Ruz & 77.6 & 37.6 & 15 & 7 & 4.97\\\\\n",
"\t44 & ValdeTravers & 67.6 & 18.7 & 25 & 7 & 8.65\\\\\n",
"\t45 & Vevey & 58.3 & 26.8 & 25 & 19 & 18.46\\\\\n",
"\t46 & Veveyse & 87.1 & 64.5 & 14 & 6 & 98.61\\\\\n",
"\t47 & Yverdon & 65.4 & 49.5 & 15 & 8 & 6.1\\\\\n",
"\\end{tabular}\n"
],
"text/plain": [
"Source: local data frame [47 x 6]\n",
"\n",
" County Fertility Agriculture Examination Education Catholic\n",
" (fctr) (dbl) (dbl) (dbl) (dbl) (dbl)\n",
"1 Aigle 64.1 62.0 21 12 8.52\n",
"2 Aubonne 66.9 67.5 14 7 2.27\n",
"3 Avenches 68.9 60.7 19 12 4.43\n",
"4 Boudry 70.4 38.4 26 12 5.62\n",
"5 Broye 83.8 70.2 16 7 92.85\n",
"6 Conthey 75.5 85.9 3 2 99.71\n",
"7 Cossonay 61.7 69.3 22 5 2.82\n",
"8 Courtelary 80.2 17.0 15 12 9.96\n",
"9 Delemont 83.1 45.1 6 9 84.84\n",
"10 Echallens 68.3 72.6 18 2 24.20\n",
".. ... ... ... ... ... ..."
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ds2 %>%\n",
" select(-Infant.Mortality) %>%\n",
" rename(County = X) %>%\n",
" gather(Measure, Value, -County) %>%\n",
" spread(Measure, Value)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Combined with `dplyr`'s `group_by` and `summarise` you can quickly\n",
"summarise data or do further, more complicated analyses. `group_by`\n",
"makes it so further analyses or operations work on the groups.\n",
"`summarise` transforms the data to only contain the new variable(s)\n",
"created, in this case the mean."
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<table>\n",
"<thead><tr><th></th><th scope=col>Measure</th><th scope=col>mean</th></tr></thead>\n",
"<tbody>\n",
"\t<tr><th scope=row>1</th><td>Fertility</td><td>70.14255</td></tr>\n",
"\t<tr><th scope=row>2</th><td>Agriculture</td><td>50.65957</td></tr>\n",
"\t<tr><th scope=row>3</th><td>Examination</td><td>16.48936</td></tr>\n",
"\t<tr><th scope=row>4</th><td>Education</td><td>10.97872</td></tr>\n",
"\t<tr><th scope=row>5</th><td>Catholic</td><td>41.14383</td></tr>\n",
"\t<tr><th scope=row>6</th><td>Infant.Mortality</td><td>19.94255</td></tr>\n",
"</tbody>\n",
"</table>\n"
],
"text/latex": [
"\\begin{tabular}{r|ll}\n",
" & Measure & mean\\\\\n",
"\\hline\n",
"\t1 & Fertility & 70.14255\\\\\n",
"\t2 & Agriculture & 50.65957\\\\\n",
"\t3 & Examination & 16.48936\\\\\n",
"\t4 & Education & 10.97872\\\\\n",
"\t5 & Catholic & 41.14383\\\\\n",
"\t6 & Infant.Mortality & 19.94255\\\\\n",
"\\end{tabular}\n"
],
"text/plain": [
"Source: local data frame [6 x 2]\n",
"\n",
" Measure mean\n",
" (fctr) (dbl)\n",
"1 Fertility 70.14255\n",
"2 Agriculture 50.65957\n",
"3 Examination 16.48936\n",
"4 Education 10.97872\n",
"5 Catholic 41.14383\n",
"6 Infant.Mortality 19.94255"
]
},
"execution_count": 30,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ds2 %>%\n",
" select(-X) %>%\n",
" gather(Measure, Value) %>%\n",
" group_by(Measure) %>%\n",
" summarise(mean = mean(Value))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"You can extend this to be created as a table in the generated `.md` or\n",
"`.html` file using the `kable` command (short for 'knitr table')."
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"\n",
"\n",
"|Measure | mean|\n",
"|:----------------|--------:|\n",
"|Fertility | 70.14255|\n",
"|Agriculture | 50.65957|\n",
"|Examination | 16.48936|\n",
"|Education | 10.97872|\n",
"|Catholic | 41.14383|\n",
"|Infant.Mortality | 19.94255|"
]
},
"execution_count": 31,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# This actually is worse when using the notebook...\n",
"\n",
"library(knitr)\n",
"ds2 %>%\n",
" select(-X) %>%\n",
" gather(Measure, Value) %>%\n",
" group_by(Measure) %>%\n",
" summarise(mean = mean(Value)) %>%\n",
" kable()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Challenge: Try this out for yourself!\n",
"\n",
"Make a table with the means of `Agriculture`, `Examination`, `Education`,\n",
"and `Infant.Mortality` for each category of `Fertility` (hint: convert it\n",
"into a factor by values `>50` vs `<50`), when `Catholic` is less than 60\n",
"(hint, use `dplyr` commands + `gather`). Have the `Fertility` groups as\n",
"two columns in the new table (hint, use `spread` + `kable`)."
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<table>\n",
"<thead><tr><th></th><th scope=col>Fertility < 50</th><th scope=col>Agriculture</th><th scope=col>Examination</th><th scope=col>Education</th><th scope=col>Infant.Mortality</th></tr></thead>\n",
"<tbody>\n",
"\t<tr><th scope=row>1</th><td>FALSE</td><td>44.9</td><td>19.60714</td><td>10.67857</td><td>19.62143</td></tr>\n",
"\t<tr><th scope=row>2</th><td>TRUE</td><td>25.16667</td><td>25</td><td>37</td><td>18.5</td></tr>\n",
"</tbody>\n",
"</table>\n"
],
"text/latex": [
"\\begin{tabular}{r|lllll}\n",
" & Fertility < 50 & Agriculture & Examination & Education & Infant.Mortality\\\\\n",
"\\hline\n",
"\t1 & FALSE & 44.9 & 19.60714 & 10.67857 & 19.62143\\\\\n",
"\t2 & TRUE & 25.16667 & 25 & 37 & 18.5\\\\\n",
"\\end{tabular}\n"
],
"text/plain": [
"Source: local data frame [2 x 5]\n",
"\n",
" Fertility < 50 Agriculture Examination Education Infant.Mortality\n",
" (lgl) (dbl) (dbl) (dbl) (dbl)\n",
"1 FALSE 44.90000 19.60714 10.67857 19.62143\n",
"2 TRUE 25.16667 25.00000 37.00000 18.50000"
]
},
"execution_count": 32,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# I don't remember how to transpose, close enough...\n",
"\n",
"ds2 %>% select(-X) %>%\n",
" filter(Catholic < 60) %>%\n",
" group_by(Fertility < 50) %>%\n",
" summarise(Agriculture=mean(Agriculture), Examination=mean(Examination),\n",
" Education=mean(Education), Infant.Mortality=mean(Infant.Mortality))"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
}
],
"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.2.2"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Fertility Agriculture Examination Education Catholic Infant.Mortality
Courtelary 80.2 17 15 12 9.96 22.2
Delemont 83.1 45.1 6 9 84.84 22.2
Franches-Mnt 92.5 39.7 5 5 93.4 20.2
Moutier 85.8 36.5 12 7 33.77 20.3
Neuveville 76.9 43.5 17 15 5.16 20.6
Porrentruy 76.1 35.3 9 7 90.57 26.6
Broye 83.8 70.2 16 7 92.85 23.6
Glane 92.4 67.8 14 8 97.16 24.9
Gruyere 82.4 53.3 12 7 97.67 21
Sarine 82.9 45.2 16 13 91.38 24.4
Veveyse 87.1 64.5 14 6 98.61 24.5
Aigle 64.1 62 21 12 8.52 16.5
Aubonne 66.9 67.5 14 7 2.27 19.1
Avenches 68.9 60.7 19 12 4.43 22.7
Cossonay 61.7 69.3 22 5 2.82 18.7
Echallens 68.3 72.6 18 2 24.2 21.2
Grandson 71.7 34 17 8 3.3 20
Lausanne 55.7 19.4 26 28 12.11 20.2
La Vallee 54.3 15.2 31 20 2.15 10.8
Lavaux 65.1 73 19 9 2.84 20
Morges 65.5 59.8 22 10 5.23 18
Moudon 65 55.1 14 3 4.52 22.4
Nyone 56.6 50.9 22 12 15.14 16.7
Orbe 57.4 54.1 20 6 4.2 15.3
Oron 72.5 71.2 12 1 2.4 21
Payerne 74.2 58.1 14 8 5.23 23.8
Paysd'enhaut 72 63.5 6 3 2.56 18
Rolle 60.5 60.8 16 10 7.72 16.3
Vevey 58.3 26.8 25 19 18.46 20.9
Yverdon 65.4 49.5 15 8 6.1 22.5
Conthey 75.5 85.9 3 2 99.71 15.1
Entremont 69.3 84.9 7 6 99.68 19.8
Herens 77.3 89.7 5 2 100 18.3
Martigwy 70.5 78.2 12 6 98.96 19.4
Monthey 79.4 64.9 7 3 98.22 20.2
St Maurice 65 75.9 9 9 99.06 17.8
Sierre 92.2 84.6 3 3 99.46 16.3
Sion 79.3 63.1 13 13 96.83 18.1
Boudry 70.4 38.4 26 12 5.62 20.3
La Chauxdfnd 65.7 7.7 29 11 13.79 20.5
Le Locle 72.7 16.7 22 13 11.22 18.9
Neuchatel 64.4 17.6 35 32 16.92 23
Val de Ruz 77.6 37.6 15 7 4.97 20
ValdeTravers 67.6 18.7 25 7 8.65 19.5
V. De Geneve 35 1.2 37 53 42.34 18
Rive Droite 44.7 46.6 16 29 50.43 18.2
Rive Gauche 42.8 27.7 22 29 58.33 19.3
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment