# Fundamental of Data Science for EESS <img src="img/course-logo.png" width="40%" style="display: block; margin: auto;" /> ## R session 03 - Data wrangling .font120[**Daniel Vaulot**] 2019-01-31 .pull-left[ <img src="img/NTU-Logo-full-colour.png" width="50%" style="display: block; margin: auto auto auto 0;" /> ] .pull-right[ <img src="img/logo_SBR.png" width="50%" style="display: block; margin: auto 0 auto auto;" /> ] --- class: middle ## Outline .font150[ * Concept of tidy data * Reading data * Manipulating data * Columns * Rows * Joining tables ] --- # Installation and Resources .pull-left[ ## Packages * readxl : Reading Excel files * readr : Reading and writing Text files * dplyr : Filter and reformat data frames * tidyr : Make data "tidy" * stringr : Manipulating strings * lubridate : Manipulate date ## Resources * On-line Book: https://r4ds.had.co.nz/ (Chapter 5) * Cheat sheets * Importing data : https://github.com/rstudio/cheatsheets/raw/master/data-import.pdf * Cleaning up data : https://github.com/rstudio/cheatsheets/raw/master/data-transformation.pdf * Manipulating strings : https://github.com/rstudio/cheatsheets/raw/master/strings.pdf ] .pull-right[ <img src="img/R_for_datascience.png" width="65%" style="display: block; margin: auto;" /> ] --- # Tidy data 1. Each variable must have its own column. 2. Each observation must have its own row. 2. Each value must have its own cell. <img src="img/tidy-data.png" width="100%" style="display: block; margin: auto;" /> --- # Initialize ## Load necessary libraries ```r library("readxl") # Import the data from Excel file library("readr") # Import the data from Excel file library("dplyr") # filter and reformat data frames library("tidyr") # make data tidy library("stringr") # manipulate strings library("lubridate") # manipulate date library("ggplot2") # graphics ``` --- layout: true # Oceanographic data --- ## CARBOM cruise off Brazil .pull-left[ <img src="img/carbom_cruise.png" width="100%" style="display: block; margin: auto;" /> ] -- .pull-right[ * Stations * Depth * Coordinates * Temperature, Salinity * Nitrates, Phosphates <img src="img/carbom_isme.png" width="100%" style="display: block; margin: auto;" /> ] --- ## Microbial populations .pull-left[ <img src="img/picopk-domi.png" width="100%" style="display: block; margin: auto;" /> ] -- .pull-right[ <img src="img/carbom_flow_cytometry.png" width="80%" style="display: block; margin: auto;" /> ] * Flow cytometry : * pico-eukaryotes * nano-eukaryotes --- layout: true # Read data --- ## Text file - TAB delimited <img src="img/carbom_txt.png" width="100%" style="display: block; margin: auto;" /> --- ## Reading a text file ```r samples <- readr::read_tsv("data/CARBOM data.txt") ``` -- <table class="table table-striped table-hover table-condensed" style="font-size: 9px; margin-left: auto; margin-right: auto;"> <thead> <tr> <th style="text-align:right;"> sample number </th> <th style="text-align:right;"> transect </th> <th style="text-align:right;"> station </th> <th style="text-align:left;"> date </th> <th style="text-align:left;"> time </th> <th style="text-align:right;"> depth </th> <th style="text-align:left;"> level </th> <th style="text-align:right;"> latitude </th> <th style="text-align:right;"> longitude </th> <th style="text-align:right;"> picoeuks </th> <th style="text-align:right;"> nanoeuks </th> <th style="text-align:right;"> phosphates </th> <th style="text-align:right;"> nitrates </th> <th style="text-align:right;"> temperature </th> <th style="text-align:right;"> salinity </th> </tr> </thead> <tbody> <tr> <td style="text-align:right;"> 10 </td> <td style="text-align:right;"> 1 </td> <td style="text-align:right;"> 81 </td> <td style="text-align:left;"> 13/11/2013 </td> <td style="text-align:left;"> 01:00:00 </td> <td style="text-align:right;"> 140 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -27.42 </td> <td style="text-align:right;"> -44.72 </td> <td style="text-align:right;"> 3278 </td> <td style="text-align:right;"> 1232 </td> <td style="text-align:right;"> 0.20 </td> <td style="text-align:right;"> 0.26 </td> <td style="text-align:right;"> 17.3 </td> <td style="text-align:right;"> 35.9 </td> </tr> <tr> <td style="text-align:right;"> 11 </td> <td style="text-align:right;"> 1 </td> <td style="text-align:right;"> 85 </td> <td style="text-align:left;"> 13/11/2013 </td> <td style="text-align:left;"> 13:30:00 </td> <td style="text-align:right;"> 110 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -26.80 </td> <td style="text-align:right;"> -45.30 </td> <td style="text-align:right;"> 16312 </td> <td style="text-align:right;"> 1615 </td> <td style="text-align:right;"> 0.29 </td> <td style="text-align:right;"> 0.22 </td> <td style="text-align:right;"> 21.3 </td> <td style="text-align:right;"> 36.5 </td> </tr> <tr> <td style="text-align:right;"> 120 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:right;"> 96 </td> <td style="text-align:left;"> 18/11/2013 </td> <td style="text-align:left;"> 23:50:00 </td> <td style="text-align:right;"> 5 </td> <td style="text-align:left;"> Surf </td> <td style="text-align:right;"> -27.39 </td> <td style="text-align:right;"> -47.82 </td> <td style="text-align:right;"> 1150 </td> <td style="text-align:right;"> 75 </td> <td style="text-align:right;"> 0.43 </td> <td style="text-align:right;"> 0.19 </td> <td style="text-align:right;"> 23.1 </td> <td style="text-align:right;"> 33.5 </td> </tr> <tr> <td style="text-align:right;"> 121 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:right;"> </td> <td style="text-align:left;"> 18/11/2013 </td> <td style="text-align:left;"> 23:50:00 </td> <td style="text-align:right;"> 30 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -27.39 </td> <td style="text-align:right;"> -47.82 </td> <td style="text-align:right;"> 1737 </td> <td style="text-align:right;"> 218 </td> <td style="text-align:right;"> 0.43 </td> <td style="text-align:right;"> 0.23 </td> <td style="text-align:right;"> 22.6 </td> <td style="text-align:right;"> 33.7 </td> </tr> <tr> <td style="text-align:right;"> 122 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:right;"> </td> <td style="text-align:left;"> 18/11/2013 </td> <td style="text-align:left;"> 23:50:00 </td> <td style="text-align:right;"> 50 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -27.39 </td> <td style="text-align:right;"> -47.82 </td> <td style="text-align:right;"> 853 </td> <td style="text-align:right;"> 234 </td> <td style="text-align:right;"> 0.56 </td> <td style="text-align:right;"> 0.21 </td> <td style="text-align:right;"> 20.3 </td> <td style="text-align:right;"> 35.9 </td> </tr> <tr> <td style="text-align:right;"> 125 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:right;"> 98 </td> <td style="text-align:left;"> 18/11/2013 </td> <td style="text-align:left;"> 05:00:00 </td> <td style="text-align:right;"> 5 </td> <td style="text-align:left;"> Surf </td> <td style="text-align:right;"> -27.59 </td> <td style="text-align:right;"> -47.39 </td> <td style="text-align:right;"> 3086 </td> <td style="text-align:right;"> 1300 </td> <td style="text-align:right;"> 0.29 </td> <td style="text-align:right;"> 0.25 </td> <td style="text-align:right;"> 23.1 </td> <td style="text-align:right;"> 35.7 </td> </tr> <tr> <td style="text-align:right;"> 126 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:right;"> </td> <td style="text-align:left;"> 18/11/2013 </td> <td style="text-align:left;"> 05:00:00 </td> <td style="text-align:right;"> 50 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -27.59 </td> <td style="text-align:right;"> -47.39 </td> <td style="text-align:right;"> 1217 </td> <td style="text-align:right;"> 782 </td> <td style="text-align:right;"> 0.25 </td> <td style="text-align:right;"> 0.20 </td> <td style="text-align:right;"> 23.7 </td> <td style="text-align:right;"> 37.2 </td> </tr> <tr> <td style="text-align:right;"> 127 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:right;"> </td> <td style="text-align:left;"> 18/11/2013 </td> <td style="text-align:left;"> 05:00:00 </td> <td style="text-align:right;"> 85 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -27.59 </td> <td style="text-align:right;"> -47.39 </td> <td style="text-align:right;"> 3420 </td> <td style="text-align:right;"> 226 </td> <td style="text-align:right;"> 0.25 </td> <td style="text-align:right;"> 0.47 </td> <td style="text-align:right;"> 22.9 </td> <td style="text-align:right;"> 37.0 </td> </tr> <tr> <td style="text-align:right;"> 13 </td> <td style="text-align:right;"> 1 </td> <td style="text-align:right;"> 86 </td> <td style="text-align:left;"> 13/11/2013 </td> <td style="text-align:left;"> 17:00:00 </td> <td style="text-align:right;"> 105 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -26.33 </td> <td style="text-align:right;"> -45.41 </td> <td style="text-align:right;"> 6366 </td> <td style="text-align:right;"> 1007 </td> <td style="text-align:right;"> 0.34 </td> <td style="text-align:right;"> 0.15 </td> <td style="text-align:right;"> 20.9 </td> <td style="text-align:right;"> 36.3 </td> </tr> <tr> <td style="text-align:right;"> 140 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:right;"> 101 </td> <td style="text-align:left;"> 18/11/2013 </td> <td style="text-align:left;"> 12:00:00 </td> <td style="text-align:right;"> 5 </td> <td style="text-align:left;"> Surf </td> <td style="text-align:right;"> -27.79 </td> <td style="text-align:right;"> -46.96 </td> <td style="text-align:right;"> 500 </td> <td style="text-align:right;"> 366 </td> <td style="text-align:right;"> 0.29 </td> <td style="text-align:right;"> 0.14 </td> <td style="text-align:right;"> 23.5 </td> <td style="text-align:right;"> 36.5 </td> </tr> </tbody> </table> -- - __readr::read_tsv()__ : read tab delimited files - __readr::read_csv()__ : read comma delimited files - __readr::write_tsv()__ : write tab delimited files --- ## Excel sheet <img src="img/carbom_excel.png" width="100%" style="display: block; margin: auto;" /> --- ## Read the data - read_excel ```r samples <- readxl::read_excel("data/CARBOM data.xlsx", sheet = "Samples_boat") ``` -- <table class="table table-striped table-hover table-condensed" style="font-size: 9px; margin-left: auto; margin-right: auto;"> <thead> <tr> <th style="text-align:left;"> sample number </th> <th style="text-align:right;"> transect </th> <th style="text-align:left;"> station </th> <th style="text-align:left;"> date </th> <th style="text-align:left;"> time </th> <th style="text-align:right;"> depth </th> <th style="text-align:left;"> level </th> <th style="text-align:right;"> latitude </th> <th style="text-align:right;"> longitude </th> <th style="text-align:right;"> picoeuks </th> <th style="text-align:right;"> nanoeuks </th> <th style="text-align:right;"> phosphates </th> <th style="text-align:right;"> nitrates </th> <th style="text-align:right;"> temperature </th> <th style="text-align:right;"> salinity </th> </tr> </thead> <tbody> <tr> <td style="text-align:left;"> 10 </td> <td style="text-align:right;"> 1 </td> <td style="text-align:left;"> 81 </td> <td style="text-align:left;"> 2013-11-13 </td> <td style="text-align:left;"> 1899-12-31 01:00:00 </td> <td style="text-align:right;"> 140 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -27.42 </td> <td style="text-align:right;"> -44.72 </td> <td style="text-align:right;"> 3278 </td> <td style="text-align:right;"> 1232 </td> <td style="text-align:right;"> 0.20 </td> <td style="text-align:right;"> 0.26 </td> <td style="text-align:right;"> 17.3 </td> <td style="text-align:right;"> 35.9 </td> </tr> <tr> <td style="text-align:left;"> 11 </td> <td style="text-align:right;"> 1 </td> <td style="text-align:left;"> 85 </td> <td style="text-align:left;"> 2013-11-13 </td> <td style="text-align:left;"> 1899-12-31 13:30:00 </td> <td style="text-align:right;"> 110 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -26.80 </td> <td style="text-align:right;"> -45.30 </td> <td style="text-align:right;"> 16312 </td> <td style="text-align:right;"> 1615 </td> <td style="text-align:right;"> 0.29 </td> <td style="text-align:right;"> 0.22 </td> <td style="text-align:right;"> 21.3 </td> <td style="text-align:right;"> 36.5 </td> </tr> <tr> <td style="text-align:left;"> 120 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 96 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 1899-12-31 23:50:00 </td> <td style="text-align:right;"> 5 </td> <td style="text-align:left;"> Surf </td> <td style="text-align:right;"> -27.39 </td> <td style="text-align:right;"> -47.82 </td> <td style="text-align:right;"> 1150 </td> <td style="text-align:right;"> 75 </td> <td style="text-align:right;"> 0.43 </td> <td style="text-align:right;"> 0.19 </td> <td style="text-align:right;"> 23.1 </td> <td style="text-align:right;"> 33.5 </td> </tr> <tr> <td style="text-align:left;"> 121 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 1899-12-31 23:50:00 </td> <td style="text-align:right;"> 30 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -27.39 </td> <td style="text-align:right;"> -47.82 </td> <td style="text-align:right;"> 1737 </td> <td style="text-align:right;"> 218 </td> <td style="text-align:right;"> 0.43 </td> <td style="text-align:right;"> 0.23 </td> <td style="text-align:right;"> 22.6 </td> <td style="text-align:right;"> 33.7 </td> </tr> <tr> <td style="text-align:left;"> 122 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 1899-12-31 23:50:00 </td> <td style="text-align:right;"> 50 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -27.39 </td> <td style="text-align:right;"> -47.82 </td> <td style="text-align:right;"> 853 </td> <td style="text-align:right;"> 234 </td> <td style="text-align:right;"> 0.56 </td> <td style="text-align:right;"> 0.21 </td> <td style="text-align:right;"> 20.3 </td> <td style="text-align:right;"> 35.9 </td> </tr> <tr> <td style="text-align:left;"> 125 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 98 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 1899-12-31 05:00:00 </td> <td style="text-align:right;"> 5 </td> <td style="text-align:left;"> Surf </td> <td style="text-align:right;"> -27.59 </td> <td style="text-align:right;"> -47.39 </td> <td style="text-align:right;"> 3086 </td> <td style="text-align:right;"> 1300 </td> <td style="text-align:right;"> 0.29 </td> <td style="text-align:right;"> 0.25 </td> <td style="text-align:right;"> 23.1 </td> <td style="text-align:right;"> 35.7 </td> </tr> <tr> <td style="text-align:left;"> 126 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 1899-12-31 05:00:00 </td> <td style="text-align:right;"> 50 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -27.59 </td> <td style="text-align:right;"> -47.39 </td> <td style="text-align:right;"> 1217 </td> <td style="text-align:right;"> 782 </td> <td style="text-align:right;"> 0.25 </td> <td style="text-align:right;"> 0.20 </td> <td style="text-align:right;"> 23.7 </td> <td style="text-align:right;"> 37.2 </td> </tr> <tr> <td style="text-align:left;"> 127 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 1899-12-31 05:00:00 </td> <td style="text-align:right;"> 85 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -27.59 </td> <td style="text-align:right;"> -47.39 </td> <td style="text-align:right;"> 3420 </td> <td style="text-align:right;"> 226 </td> <td style="text-align:right;"> 0.25 </td> <td style="text-align:right;"> 0.47 </td> <td style="text-align:right;"> 22.9 </td> <td style="text-align:right;"> 37.0 </td> </tr> <tr> <td style="text-align:left;"> 13 </td> <td style="text-align:right;"> 1 </td> <td style="text-align:left;"> 86 </td> <td style="text-align:left;"> 2013-11-13 </td> <td style="text-align:left;"> 1899-12-31 17:00:00 </td> <td style="text-align:right;"> 105 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -26.33 </td> <td style="text-align:right;"> -45.41 </td> <td style="text-align:right;"> 6366 </td> <td style="text-align:right;"> 1007 </td> <td style="text-align:right;"> 0.34 </td> <td style="text-align:right;"> 0.15 </td> <td style="text-align:right;"> 20.9 </td> <td style="text-align:right;"> 36.3 </td> </tr> <tr> <td style="text-align:left;"> 140 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 101 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 1899-12-31 12:00:00 </td> <td style="text-align:right;"> 5 </td> <td style="text-align:left;"> Surf </td> <td style="text-align:right;"> -27.79 </td> <td style="text-align:right;"> -46.96 </td> <td style="text-align:right;"> 500 </td> <td style="text-align:right;"> 366 </td> <td style="text-align:right;"> 0.29 </td> <td style="text-align:right;"> 0.14 </td> <td style="text-align:right;"> 23.5 </td> <td style="text-align:right;"> 36.5 </td> </tr> </tbody> </table> * Can also select a range : e.g. A1:Q26 * Can skip lines --- ## Bad data input under Excel <br> <table class="table table-striped table-hover table-condensed" style="font-size: 9px; margin-left: auto; margin-right: auto;"> <thead> <tr> <th style="text-align:left;"> sample number </th> <th style="text-align:right;"> transect </th> <th style="text-align:left;"> station </th> <th style="text-align:left;"> date </th> <th style="text-align:left;"> time </th> <th style="text-align:right;"> depth </th> <th style="text-align:left;"> level </th> <th style="text-align:right;"> latitude </th> <th style="text-align:right;"> longitude </th> <th style="text-align:right;"> picoeuks </th> <th style="text-align:right;"> nanoeuks </th> <th style="text-align:right;"> phosphates </th> <th style="text-align:right;"> nitrates </th> <th style="text-align:right;"> temperature </th> <th style="text-align:right;"> salinity </th> </tr> </thead> <tbody> <tr> <td style="text-align:left;"> 10 </td> <td style="text-align:right;"> 1 </td> <td style="text-align:left;"> 81 </td> <td style="text-align:left;"> 2013-11-13 </td> <td style="text-align:left;"> 1899-12-31 01:00:00 </td> <td style="text-align:right;"> 140 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -27.42 </td> <td style="text-align:right;"> -44.72 </td> <td style="text-align:right;"> 3278 </td> <td style="text-align:right;"> 1232 </td> <td style="text-align:right;"> 0.20 </td> <td style="text-align:right;"> 0.26 </td> <td style="text-align:right;"> 17.3 </td> <td style="text-align:right;"> 35.9 </td> </tr> <tr> <td style="text-align:left;"> 11 </td> <td style="text-align:right;"> 1 </td> <td style="text-align:left;"> 85 </td> <td style="text-align:left;"> 2013-11-13 </td> <td style="text-align:left;"> 1899-12-31 13:30:00 </td> <td style="text-align:right;"> 110 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -26.80 </td> <td style="text-align:right;"> -45.30 </td> <td style="text-align:right;"> 16312 </td> <td style="text-align:right;"> 1615 </td> <td style="text-align:right;"> 0.29 </td> <td style="text-align:right;"> 0.22 </td> <td style="text-align:right;"> 21.3 </td> <td style="text-align:right;"> 36.5 </td> </tr> <tr> <td style="text-align:left;"> 120 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 96 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 1899-12-31 23:50:00 </td> <td style="text-align:right;"> 5 </td> <td style="text-align:left;"> Surf </td> <td style="text-align:right;"> -27.39 </td> <td style="text-align:right;"> -47.82 </td> <td style="text-align:right;"> 1150 </td> <td style="text-align:right;"> 75 </td> <td style="text-align:right;"> 0.43 </td> <td style="text-align:right;"> 0.19 </td> <td style="text-align:right;"> 23.1 </td> <td style="text-align:right;"> 33.5 </td> </tr> <tr> <td style="text-align:left;background-color: lightyellow;"> 121 </td> <td style="text-align:right;background-color: lightyellow;"> 2 </td> <td style="text-align:left;background-color: lightyellow;"> </td> <td style="text-align:left;background-color: lightyellow;"> 2013-11-18 </td> <td style="text-align:left;background-color: lightyellow;"> 1899-12-31 23:50:00 </td> <td style="text-align:right;background-color: lightyellow;"> 30 </td> <td style="text-align:left;background-color: lightyellow;"> Deep </td> <td style="text-align:right;background-color: lightyellow;"> -27.39 </td> <td style="text-align:right;background-color: lightyellow;"> -47.82 </td> <td style="text-align:right;background-color: lightyellow;"> 1737 </td> <td style="text-align:right;background-color: lightyellow;"> 218 </td> <td style="text-align:right;background-color: lightyellow;"> 0.43 </td> <td style="text-align:right;background-color: lightyellow;"> 0.23 </td> <td style="text-align:right;background-color: lightyellow;"> 22.6 </td> <td style="text-align:right;background-color: lightyellow;"> 33.7 </td> </tr> <tr> <td style="text-align:left;background-color: lightyellow;"> 122 </td> <td style="text-align:right;background-color: lightyellow;"> 2 </td> <td style="text-align:left;background-color: lightyellow;"> </td> <td style="text-align:left;background-color: lightyellow;"> 2013-11-18 </td> <td style="text-align:left;background-color: lightyellow;"> 1899-12-31 23:50:00 </td> <td style="text-align:right;background-color: lightyellow;"> 50 </td> <td style="text-align:left;background-color: lightyellow;"> Deep </td> <td style="text-align:right;background-color: lightyellow;"> -27.39 </td> <td style="text-align:right;background-color: lightyellow;"> -47.82 </td> <td style="text-align:right;background-color: lightyellow;"> 853 </td> <td style="text-align:right;background-color: lightyellow;"> 234 </td> <td style="text-align:right;background-color: lightyellow;"> 0.56 </td> <td style="text-align:right;background-color: lightyellow;"> 0.21 </td> <td style="text-align:right;background-color: lightyellow;"> 20.3 </td> <td style="text-align:right;background-color: lightyellow;"> 35.9 </td> </tr> <tr> <td style="text-align:left;"> 125 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 98 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 1899-12-31 05:00:00 </td> <td style="text-align:right;"> 5 </td> <td style="text-align:left;"> Surf </td> <td style="text-align:right;"> -27.59 </td> <td style="text-align:right;"> -47.39 </td> <td style="text-align:right;"> 3086 </td> <td style="text-align:right;"> 1300 </td> <td style="text-align:right;"> 0.29 </td> <td style="text-align:right;"> 0.25 </td> <td style="text-align:right;"> 23.1 </td> <td style="text-align:right;"> 35.7 </td> </tr> <tr> <td style="text-align:left;background-color: lightyellow;"> 126 </td> <td style="text-align:right;background-color: lightyellow;"> 2 </td> <td style="text-align:left;background-color: lightyellow;"> </td> <td style="text-align:left;background-color: lightyellow;"> 2013-11-18 </td> <td style="text-align:left;background-color: lightyellow;"> 1899-12-31 05:00:00 </td> <td style="text-align:right;background-color: lightyellow;"> 50 </td> <td style="text-align:left;background-color: lightyellow;"> Deep </td> <td style="text-align:right;background-color: lightyellow;"> -27.59 </td> <td style="text-align:right;background-color: lightyellow;"> -47.39 </td> <td style="text-align:right;background-color: lightyellow;"> 1217 </td> <td style="text-align:right;background-color: lightyellow;"> 782 </td> <td style="text-align:right;background-color: lightyellow;"> 0.25 </td> <td style="text-align:right;background-color: lightyellow;"> 0.20 </td> <td style="text-align:right;background-color: lightyellow;"> 23.7 </td> <td style="text-align:right;background-color: lightyellow;"> 37.2 </td> </tr> <tr> <td style="text-align:left;background-color: lightyellow;"> 127 </td> <td style="text-align:right;background-color: lightyellow;"> 2 </td> <td style="text-align:left;background-color: lightyellow;"> </td> <td style="text-align:left;background-color: lightyellow;"> 2013-11-18 </td> <td style="text-align:left;background-color: lightyellow;"> 1899-12-31 05:00:00 </td> <td style="text-align:right;background-color: lightyellow;"> 85 </td> <td style="text-align:left;background-color: lightyellow;"> Deep </td> <td style="text-align:right;background-color: lightyellow;"> -27.59 </td> <td style="text-align:right;background-color: lightyellow;"> -47.39 </td> <td style="text-align:right;background-color: lightyellow;"> 3420 </td> <td style="text-align:right;background-color: lightyellow;"> 226 </td> <td style="text-align:right;background-color: lightyellow;"> 0.25 </td> <td style="text-align:right;background-color: lightyellow;"> 0.47 </td> <td style="text-align:right;background-color: lightyellow;"> 22.9 </td> <td style="text-align:right;background-color: lightyellow;"> 37.0 </td> </tr> <tr> <td style="text-align:left;"> 13 </td> <td style="text-align:right;"> 1 </td> <td style="text-align:left;"> 86 </td> <td style="text-align:left;"> 2013-11-13 </td> <td style="text-align:left;"> 1899-12-31 17:00:00 </td> <td style="text-align:right;"> 105 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -26.33 </td> <td style="text-align:right;"> -45.41 </td> <td style="text-align:right;"> 6366 </td> <td style="text-align:right;"> 1007 </td> <td style="text-align:right;"> 0.34 </td> <td style="text-align:right;"> 0.15 </td> <td style="text-align:right;"> 20.9 </td> <td style="text-align:right;"> 36.3 </td> </tr> <tr> <td style="text-align:left;"> 140 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 101 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 1899-12-31 12:00:00 </td> <td style="text-align:right;"> 5 </td> <td style="text-align:left;"> Surf </td> <td style="text-align:right;"> -27.79 </td> <td style="text-align:right;"> -46.96 </td> <td style="text-align:right;"> 500 </td> <td style="text-align:right;"> 366 </td> <td style="text-align:right;"> 0.29 </td> <td style="text-align:right;"> 0.14 </td> <td style="text-align:right;"> 23.5 </td> <td style="text-align:right;"> 36.5 </td> </tr> </tbody> </table> * There are missing values in the column __station__ because only recorded when changed --- ## Filling missing values - fill ```r samples <- tidyr::fill(samples, station) ``` -- <table class="table table-striped table-hover table-condensed" style="font-size: 9px; margin-left: auto; margin-right: auto;"> <thead> <tr> <th style="text-align:left;"> sample number </th> <th style="text-align:right;"> transect </th> <th style="text-align:left;"> station </th> <th style="text-align:left;"> date </th> <th style="text-align:left;"> time </th> <th style="text-align:right;"> depth </th> <th style="text-align:left;"> level </th> <th style="text-align:right;"> latitude </th> <th style="text-align:right;"> longitude </th> <th style="text-align:right;"> picoeuks </th> <th style="text-align:right;"> nanoeuks </th> <th style="text-align:right;"> phosphates </th> <th style="text-align:right;"> nitrates </th> <th style="text-align:right;"> temperature </th> <th style="text-align:right;"> salinity </th> </tr> </thead> <tbody> <tr> <td style="text-align:left;"> 10 </td> <td style="text-align:right;"> 1 </td> <td style="text-align:left;"> 81 </td> <td style="text-align:left;"> 2013-11-13 </td> <td style="text-align:left;"> 1899-12-31 01:00:00 </td> <td style="text-align:right;"> 140 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -27.42 </td> <td style="text-align:right;"> -44.72 </td> <td style="text-align:right;"> 3278 </td> <td style="text-align:right;"> 1232 </td> <td style="text-align:right;"> 0.20 </td> <td style="text-align:right;"> 0.26 </td> <td style="text-align:right;"> 17.3 </td> <td style="text-align:right;"> 35.9 </td> </tr> <tr> <td style="text-align:left;"> 11 </td> <td style="text-align:right;"> 1 </td> <td style="text-align:left;"> 85 </td> <td style="text-align:left;"> 2013-11-13 </td> <td style="text-align:left;"> 1899-12-31 13:30:00 </td> <td style="text-align:right;"> 110 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -26.80 </td> <td style="text-align:right;"> -45.30 </td> <td style="text-align:right;"> 16312 </td> <td style="text-align:right;"> 1615 </td> <td style="text-align:right;"> 0.29 </td> <td style="text-align:right;"> 0.22 </td> <td style="text-align:right;"> 21.3 </td> <td style="text-align:right;"> 36.5 </td> </tr> <tr> <td style="text-align:left;"> 120 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 96 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 1899-12-31 23:50:00 </td> <td style="text-align:right;"> 5 </td> <td style="text-align:left;"> Surf </td> <td style="text-align:right;"> -27.39 </td> <td style="text-align:right;"> -47.82 </td> <td style="text-align:right;"> 1150 </td> <td style="text-align:right;"> 75 </td> <td style="text-align:right;"> 0.43 </td> <td style="text-align:right;"> 0.19 </td> <td style="text-align:right;"> 23.1 </td> <td style="text-align:right;"> 33.5 </td> </tr> <tr> <td style="text-align:left;"> 121 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 96 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 1899-12-31 23:50:00 </td> <td style="text-align:right;"> 30 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -27.39 </td> <td style="text-align:right;"> -47.82 </td> <td style="text-align:right;"> 1737 </td> <td style="text-align:right;"> 218 </td> <td style="text-align:right;"> 0.43 </td> <td style="text-align:right;"> 0.23 </td> <td style="text-align:right;"> 22.6 </td> <td style="text-align:right;"> 33.7 </td> </tr> <tr> <td style="text-align:left;"> 122 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 96 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 1899-12-31 23:50:00 </td> <td style="text-align:right;"> 50 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -27.39 </td> <td style="text-align:right;"> -47.82 </td> <td style="text-align:right;"> 853 </td> <td style="text-align:right;"> 234 </td> <td style="text-align:right;"> 0.56 </td> <td style="text-align:right;"> 0.21 </td> <td style="text-align:right;"> 20.3 </td> <td style="text-align:right;"> 35.9 </td> </tr> <tr> <td style="text-align:left;"> 125 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 98 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 1899-12-31 05:00:00 </td> <td style="text-align:right;"> 5 </td> <td style="text-align:left;"> Surf </td> <td style="text-align:right;"> -27.59 </td> <td style="text-align:right;"> -47.39 </td> <td style="text-align:right;"> 3086 </td> <td style="text-align:right;"> 1300 </td> <td style="text-align:right;"> 0.29 </td> <td style="text-align:right;"> 0.25 </td> <td style="text-align:right;"> 23.1 </td> <td style="text-align:right;"> 35.7 </td> </tr> <tr> <td style="text-align:left;"> 126 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 98 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 1899-12-31 05:00:00 </td> <td style="text-align:right;"> 50 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -27.59 </td> <td style="text-align:right;"> -47.39 </td> <td style="text-align:right;"> 1217 </td> <td style="text-align:right;"> 782 </td> <td style="text-align:right;"> 0.25 </td> <td style="text-align:right;"> 0.20 </td> <td style="text-align:right;"> 23.7 </td> <td style="text-align:right;"> 37.2 </td> </tr> <tr> <td style="text-align:left;"> 127 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 98 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 1899-12-31 05:00:00 </td> <td style="text-align:right;"> 85 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -27.59 </td> <td style="text-align:right;"> -47.39 </td> <td style="text-align:right;"> 3420 </td> <td style="text-align:right;"> 226 </td> <td style="text-align:right;"> 0.25 </td> <td style="text-align:right;"> 0.47 </td> <td style="text-align:right;"> 22.9 </td> <td style="text-align:right;"> 37.0 </td> </tr> <tr> <td style="text-align:left;"> 13 </td> <td style="text-align:right;"> 1 </td> <td style="text-align:left;"> 86 </td> <td style="text-align:left;"> 2013-11-13 </td> <td style="text-align:left;"> 1899-12-31 17:00:00 </td> <td style="text-align:right;"> 105 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -26.33 </td> <td style="text-align:right;"> -45.41 </td> <td style="text-align:right;"> 6366 </td> <td style="text-align:right;"> 1007 </td> <td style="text-align:right;"> 0.34 </td> <td style="text-align:right;"> 0.15 </td> <td style="text-align:right;"> 20.9 </td> <td style="text-align:right;"> 36.3 </td> </tr> <tr> <td style="text-align:left;"> 140 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 101 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 1899-12-31 12:00:00 </td> <td style="text-align:right;"> 5 </td> <td style="text-align:left;"> Surf </td> <td style="text-align:right;"> -27.79 </td> <td style="text-align:right;"> -46.96 </td> <td style="text-align:right;"> 500 </td> <td style="text-align:right;"> 366 </td> <td style="text-align:right;"> 0.29 </td> <td style="text-align:right;"> 0.14 </td> <td style="text-align:right;"> 23.5 </td> <td style="text-align:right;"> 36.5 </td> </tr> </tbody> </table> * All missing values have been filled in. --- # dplyr - Manipulate tables <img src="img/dplyr.jpg" width="75%" style="display: block; margin: auto;" /> @allison_horst --- layout: true # Manipulate columns --- ## List columns ```r colnames(samples) ``` ``` [1] "sample number" "transect" "station" "date" [5] "time" "depth" "level" "latitude" [9] "longitude" "picoeuks" "nanoeuks" "phosphates" [13] "nitrates" "temperature" "salinity" ``` --- ## Summarize columns ```r summary(samples$depth) ``` ``` Min. 1st Qu. Median Mean 3rd Qu. Max. NA's 5.0 5.0 50.0 56.6 100.0 140.0 3 ``` --- ## Select specific columns - select ```r samples_select <- dplyr::select(samples, transect, `sample number`, station, depth, latitude, longitude, picoeuks, nanoeuks) ``` -- <table class="table table-striped table-hover table-condensed" style="font-size: 9px; margin-left: auto; margin-right: auto;"> <thead> <tr> <th style="text-align:right;"> transect </th> <th style="text-align:left;"> sample number </th> <th style="text-align:left;"> station </th> <th style="text-align:right;"> depth </th> <th style="text-align:right;"> latitude </th> <th style="text-align:right;"> longitude </th> <th style="text-align:right;"> picoeuks </th> <th style="text-align:right;"> nanoeuks </th> </tr> </thead> <tbody> <tr> <td style="text-align:right;"> 1 </td> <td style="text-align:left;"> 10 </td> <td style="text-align:left;"> 81 </td> <td style="text-align:right;"> 140 </td> <td style="text-align:right;"> -27.42 </td> <td style="text-align:right;"> -44.72 </td> <td style="text-align:right;"> 3278 </td> <td style="text-align:right;"> 1232 </td> </tr> <tr> <td style="text-align:right;"> 1 </td> <td style="text-align:left;"> 11 </td> <td style="text-align:left;"> 85 </td> <td style="text-align:right;"> 110 </td> <td style="text-align:right;"> -26.80 </td> <td style="text-align:right;"> -45.30 </td> <td style="text-align:right;"> 16312 </td> <td style="text-align:right;"> 1615 </td> </tr> <tr> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 120 </td> <td style="text-align:left;"> 96 </td> <td style="text-align:right;"> 5 </td> <td style="text-align:right;"> -27.39 </td> <td style="text-align:right;"> -47.82 </td> <td style="text-align:right;"> 1150 </td> <td style="text-align:right;"> 75 </td> </tr> <tr> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 121 </td> <td style="text-align:left;"> 96 </td> <td style="text-align:right;"> 30 </td> <td style="text-align:right;"> -27.39 </td> <td style="text-align:right;"> -47.82 </td> <td style="text-align:right;"> 1737 </td> <td style="text-align:right;"> 218 </td> </tr> <tr> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 122 </td> <td style="text-align:left;"> 96 </td> <td style="text-align:right;"> 50 </td> <td style="text-align:right;"> -27.39 </td> <td style="text-align:right;"> -47.82 </td> <td style="text-align:right;"> 853 </td> <td style="text-align:right;"> 234 </td> </tr> <tr> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 125 </td> <td style="text-align:left;"> 98 </td> <td style="text-align:right;"> 5 </td> <td style="text-align:right;"> -27.59 </td> <td style="text-align:right;"> -47.39 </td> <td style="text-align:right;"> 3086 </td> <td style="text-align:right;"> 1300 </td> </tr> <tr> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 126 </td> <td style="text-align:left;"> 98 </td> <td style="text-align:right;"> 50 </td> <td style="text-align:right;"> -27.59 </td> <td style="text-align:right;"> -47.39 </td> <td style="text-align:right;"> 1217 </td> <td style="text-align:right;"> 782 </td> </tr> <tr> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 127 </td> <td style="text-align:left;"> 98 </td> <td style="text-align:right;"> 85 </td> <td style="text-align:right;"> -27.59 </td> <td style="text-align:right;"> -47.39 </td> <td style="text-align:right;"> 3420 </td> <td style="text-align:right;"> 226 </td> </tr> <tr> <td style="text-align:right;"> 1 </td> <td style="text-align:left;"> 13 </td> <td style="text-align:left;"> 86 </td> <td style="text-align:right;"> 105 </td> <td style="text-align:right;"> -26.33 </td> <td style="text-align:right;"> -45.41 </td> <td style="text-align:right;"> 6366 </td> <td style="text-align:right;"> 1007 </td> </tr> <tr> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 140 </td> <td style="text-align:left;"> 101 </td> <td style="text-align:right;"> 5 </td> <td style="text-align:right;"> -27.79 </td> <td style="text-align:right;"> -46.96 </td> <td style="text-align:right;"> 500 </td> <td style="text-align:right;"> 366 </td> </tr> </tbody> </table> .warning[ * Column names are not "quoted" (in base R you need to "quote" the column names) * Better not to put space in column header because then must enclose column name with \` (back-quote)] --- ## Select a range of columns - select ```r samples_select <- dplyr::select(samples, transect:nanoeuks) ``` -- <table class="table table-striped table-hover table-condensed" style="font-size: 9px; margin-left: auto; margin-right: auto;"> <thead> <tr> <th style="text-align:right;"> transect </th> <th style="text-align:left;"> station </th> <th style="text-align:left;"> date </th> <th style="text-align:left;"> time </th> <th style="text-align:right;"> depth </th> <th style="text-align:left;"> level </th> <th style="text-align:right;"> latitude </th> <th style="text-align:right;"> longitude </th> <th style="text-align:right;"> picoeuks </th> <th style="text-align:right;"> nanoeuks </th> </tr> </thead> <tbody> <tr> <td style="text-align:right;"> 1 </td> <td style="text-align:left;"> 81 </td> <td style="text-align:left;"> 2013-11-13 </td> <td style="text-align:left;"> 1899-12-31 01:00:00 </td> <td style="text-align:right;"> 140 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -27.42 </td> <td style="text-align:right;"> -44.72 </td> <td style="text-align:right;"> 3278 </td> <td style="text-align:right;"> 1232 </td> </tr> <tr> <td style="text-align:right;"> 1 </td> <td style="text-align:left;"> 85 </td> <td style="text-align:left;"> 2013-11-13 </td> <td style="text-align:left;"> 1899-12-31 13:30:00 </td> <td style="text-align:right;"> 110 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -26.80 </td> <td style="text-align:right;"> -45.30 </td> <td style="text-align:right;"> 16312 </td> <td style="text-align:right;"> 1615 </td> </tr> <tr> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 96 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 1899-12-31 23:50:00 </td> <td style="text-align:right;"> 5 </td> <td style="text-align:left;"> Surf </td> <td style="text-align:right;"> -27.39 </td> <td style="text-align:right;"> -47.82 </td> <td style="text-align:right;"> 1150 </td> <td style="text-align:right;"> 75 </td> </tr> <tr> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 96 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 1899-12-31 23:50:00 </td> <td style="text-align:right;"> 30 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -27.39 </td> <td style="text-align:right;"> -47.82 </td> <td style="text-align:right;"> 1737 </td> <td style="text-align:right;"> 218 </td> </tr> <tr> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 96 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 1899-12-31 23:50:00 </td> <td style="text-align:right;"> 50 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -27.39 </td> <td style="text-align:right;"> -47.82 </td> <td style="text-align:right;"> 853 </td> <td style="text-align:right;"> 234 </td> </tr> <tr> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 98 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 1899-12-31 05:00:00 </td> <td style="text-align:right;"> 5 </td> <td style="text-align:left;"> Surf </td> <td style="text-align:right;"> -27.59 </td> <td style="text-align:right;"> -47.39 </td> <td style="text-align:right;"> 3086 </td> <td style="text-align:right;"> 1300 </td> </tr> <tr> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 98 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 1899-12-31 05:00:00 </td> <td style="text-align:right;"> 50 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -27.59 </td> <td style="text-align:right;"> -47.39 </td> <td style="text-align:right;"> 1217 </td> <td style="text-align:right;"> 782 </td> </tr> <tr> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 98 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 1899-12-31 05:00:00 </td> <td style="text-align:right;"> 85 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -27.59 </td> <td style="text-align:right;"> -47.39 </td> <td style="text-align:right;"> 3420 </td> <td style="text-align:right;"> 226 </td> </tr> <tr> <td style="text-align:right;"> 1 </td> <td style="text-align:left;"> 86 </td> <td style="text-align:left;"> 2013-11-13 </td> <td style="text-align:left;"> 1899-12-31 17:00:00 </td> <td style="text-align:right;"> 105 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -26.33 </td> <td style="text-align:right;"> -45.41 </td> <td style="text-align:right;"> 6366 </td> <td style="text-align:right;"> 1007 </td> </tr> <tr> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 101 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 1899-12-31 12:00:00 </td> <td style="text-align:right;"> 5 </td> <td style="text-align:left;"> Surf </td> <td style="text-align:right;"> -27.79 </td> <td style="text-align:right;"> -46.96 </td> <td style="text-align:right;"> 500 </td> <td style="text-align:right;"> 366 </td> </tr> </tbody> </table> --- ## Unselect columns - select ```r samples_select <- dplyr::select(samples, -nitrates, -phosphates) ``` -- <table class="table table-striped table-hover table-condensed" style="font-size: 9px; margin-left: auto; margin-right: auto;"> <thead> <tr> <th style="text-align:left;"> sample number </th> <th style="text-align:right;"> transect </th> <th style="text-align:left;"> station </th> <th style="text-align:left;"> date </th> <th style="text-align:left;"> time </th> <th style="text-align:right;"> depth </th> <th style="text-align:left;"> level </th> <th style="text-align:right;"> latitude </th> <th style="text-align:right;"> longitude </th> <th style="text-align:right;"> picoeuks </th> <th style="text-align:right;"> nanoeuks </th> <th style="text-align:right;"> temperature </th> <th style="text-align:right;"> salinity </th> </tr> </thead> <tbody> <tr> <td style="text-align:left;"> 10 </td> <td style="text-align:right;"> 1 </td> <td style="text-align:left;"> 81 </td> <td style="text-align:left;"> 2013-11-13 </td> <td style="text-align:left;"> 1899-12-31 01:00:00 </td> <td style="text-align:right;"> 140 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -27.42 </td> <td style="text-align:right;"> -44.72 </td> <td style="text-align:right;"> 3278 </td> <td style="text-align:right;"> 1232 </td> <td style="text-align:right;"> 17.3 </td> <td style="text-align:right;"> 35.9 </td> </tr> <tr> <td style="text-align:left;"> 11 </td> <td style="text-align:right;"> 1 </td> <td style="text-align:left;"> 85 </td> <td style="text-align:left;"> 2013-11-13 </td> <td style="text-align:left;"> 1899-12-31 13:30:00 </td> <td style="text-align:right;"> 110 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -26.80 </td> <td style="text-align:right;"> -45.30 </td> <td style="text-align:right;"> 16312 </td> <td style="text-align:right;"> 1615 </td> <td style="text-align:right;"> 21.3 </td> <td style="text-align:right;"> 36.5 </td> </tr> <tr> <td style="text-align:left;"> 120 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 96 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 1899-12-31 23:50:00 </td> <td style="text-align:right;"> 5 </td> <td style="text-align:left;"> Surf </td> <td style="text-align:right;"> -27.39 </td> <td style="text-align:right;"> -47.82 </td> <td style="text-align:right;"> 1150 </td> <td style="text-align:right;"> 75 </td> <td style="text-align:right;"> 23.1 </td> <td style="text-align:right;"> 33.5 </td> </tr> <tr> <td style="text-align:left;"> 121 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 96 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 1899-12-31 23:50:00 </td> <td style="text-align:right;"> 30 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -27.39 </td> <td style="text-align:right;"> -47.82 </td> <td style="text-align:right;"> 1737 </td> <td style="text-align:right;"> 218 </td> <td style="text-align:right;"> 22.6 </td> <td style="text-align:right;"> 33.7 </td> </tr> <tr> <td style="text-align:left;"> 122 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 96 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 1899-12-31 23:50:00 </td> <td style="text-align:right;"> 50 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -27.39 </td> <td style="text-align:right;"> -47.82 </td> <td style="text-align:right;"> 853 </td> <td style="text-align:right;"> 234 </td> <td style="text-align:right;"> 20.3 </td> <td style="text-align:right;"> 35.9 </td> </tr> <tr> <td style="text-align:left;"> 125 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 98 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 1899-12-31 05:00:00 </td> <td style="text-align:right;"> 5 </td> <td style="text-align:left;"> Surf </td> <td style="text-align:right;"> -27.59 </td> <td style="text-align:right;"> -47.39 </td> <td style="text-align:right;"> 3086 </td> <td style="text-align:right;"> 1300 </td> <td style="text-align:right;"> 23.1 </td> <td style="text-align:right;"> 35.7 </td> </tr> <tr> <td style="text-align:left;"> 126 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 98 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 1899-12-31 05:00:00 </td> <td style="text-align:right;"> 50 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -27.59 </td> <td style="text-align:right;"> -47.39 </td> <td style="text-align:right;"> 1217 </td> <td style="text-align:right;"> 782 </td> <td style="text-align:right;"> 23.7 </td> <td style="text-align:right;"> 37.2 </td> </tr> <tr> <td style="text-align:left;"> 127 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 98 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 1899-12-31 05:00:00 </td> <td style="text-align:right;"> 85 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -27.59 </td> <td style="text-align:right;"> -47.39 </td> <td style="text-align:right;"> 3420 </td> <td style="text-align:right;"> 226 </td> <td style="text-align:right;"> 22.9 </td> <td style="text-align:right;"> 37.0 </td> </tr> <tr> <td style="text-align:left;"> 13 </td> <td style="text-align:right;"> 1 </td> <td style="text-align:left;"> 86 </td> <td style="text-align:left;"> 2013-11-13 </td> <td style="text-align:left;"> 1899-12-31 17:00:00 </td> <td style="text-align:right;"> 105 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -26.33 </td> <td style="text-align:right;"> -45.41 </td> <td style="text-align:right;"> 6366 </td> <td style="text-align:right;"> 1007 </td> <td style="text-align:right;"> 20.9 </td> <td style="text-align:right;"> 36.3 </td> </tr> <tr> <td style="text-align:left;"> 140 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 101 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 1899-12-31 12:00:00 </td> <td style="text-align:right;"> 5 </td> <td style="text-align:left;"> Surf </td> <td style="text-align:right;"> -27.79 </td> <td style="text-align:right;"> -46.96 </td> <td style="text-align:right;"> 500 </td> <td style="text-align:right;"> 366 </td> <td style="text-align:right;"> 23.5 </td> <td style="text-align:right;"> 36.5 </td> </tr> </tbody> </table> --- ## Using the pipe operator - %>% ```r samples_select <- samples %>% dplyr::select(transect:nanoeuks) ``` -- <table class="table table-striped table-hover table-condensed" style="font-size: 9px; margin-left: auto; margin-right: auto;"> <thead> <tr> <th style="text-align:right;"> transect </th> <th style="text-align:left;"> station </th> <th style="text-align:left;"> date </th> <th style="text-align:left;"> time </th> <th style="text-align:right;"> depth </th> <th style="text-align:left;"> level </th> <th style="text-align:right;"> latitude </th> <th style="text-align:right;"> longitude </th> <th style="text-align:right;"> picoeuks </th> <th style="text-align:right;"> nanoeuks </th> </tr> </thead> <tbody> <tr> <td style="text-align:right;"> 1 </td> <td style="text-align:left;"> 81 </td> <td style="text-align:left;"> 2013-11-13 </td> <td style="text-align:left;"> 1899-12-31 01:00:00 </td> <td style="text-align:right;"> 140 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -27.42 </td> <td style="text-align:right;"> -44.72 </td> <td style="text-align:right;"> 3278 </td> <td style="text-align:right;"> 1232 </td> </tr> <tr> <td style="text-align:right;"> 1 </td> <td style="text-align:left;"> 85 </td> <td style="text-align:left;"> 2013-11-13 </td> <td style="text-align:left;"> 1899-12-31 13:30:00 </td> <td style="text-align:right;"> 110 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -26.80 </td> <td style="text-align:right;"> -45.30 </td> <td style="text-align:right;"> 16312 </td> <td style="text-align:right;"> 1615 </td> </tr> <tr> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 96 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 1899-12-31 23:50:00 </td> <td style="text-align:right;"> 5 </td> <td style="text-align:left;"> Surf </td> <td style="text-align:right;"> -27.39 </td> <td style="text-align:right;"> -47.82 </td> <td style="text-align:right;"> 1150 </td> <td style="text-align:right;"> 75 </td> </tr> <tr> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 96 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 1899-12-31 23:50:00 </td> <td style="text-align:right;"> 30 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -27.39 </td> <td style="text-align:right;"> -47.82 </td> <td style="text-align:right;"> 1737 </td> <td style="text-align:right;"> 218 </td> </tr> <tr> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 96 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 1899-12-31 23:50:00 </td> <td style="text-align:right;"> 50 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -27.39 </td> <td style="text-align:right;"> -47.82 </td> <td style="text-align:right;"> 853 </td> <td style="text-align:right;"> 234 </td> </tr> <tr> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 98 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 1899-12-31 05:00:00 </td> <td style="text-align:right;"> 5 </td> <td style="text-align:left;"> Surf </td> <td style="text-align:right;"> -27.59 </td> <td style="text-align:right;"> -47.39 </td> <td style="text-align:right;"> 3086 </td> <td style="text-align:right;"> 1300 </td> </tr> <tr> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 98 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 1899-12-31 05:00:00 </td> <td style="text-align:right;"> 50 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -27.59 </td> <td style="text-align:right;"> -47.39 </td> <td style="text-align:right;"> 1217 </td> <td style="text-align:right;"> 782 </td> </tr> <tr> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 98 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 1899-12-31 05:00:00 </td> <td style="text-align:right;"> 85 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -27.59 </td> <td style="text-align:right;"> -47.39 </td> <td style="text-align:right;"> 3420 </td> <td style="text-align:right;"> 226 </td> </tr> <tr> <td style="text-align:right;"> 1 </td> <td style="text-align:left;"> 86 </td> <td style="text-align:left;"> 2013-11-13 </td> <td style="text-align:left;"> 1899-12-31 17:00:00 </td> <td style="text-align:right;"> 105 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -26.33 </td> <td style="text-align:right;"> -45.41 </td> <td style="text-align:right;"> 6366 </td> <td style="text-align:right;"> 1007 </td> </tr> <tr> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 101 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 1899-12-31 12:00:00 </td> <td style="text-align:right;"> 5 </td> <td style="text-align:left;"> Surf </td> <td style="text-align:right;"> -27.79 </td> <td style="text-align:right;"> -46.96 </td> <td style="text-align:right;"> 500 </td> <td style="text-align:right;"> 366 </td> </tr> </tbody> </table> * It is cleaner to write on 2 lines ```r samples_select <- samples %>% dplyr::select(transect:nanoeuks) ``` --- ## Renaming variables - rename ```r samples <- samples %>% dplyr::rename(sample_number = `sample number`) ``` -- <table class="table table-striped table-hover table-condensed" style="font-size: 9px; margin-left: auto; margin-right: auto;"> <thead> <tr> <th style="text-align:left;"> sample_number </th> <th style="text-align:right;"> transect </th> <th style="text-align:left;"> station </th> <th style="text-align:left;"> date </th> <th style="text-align:left;"> time </th> <th style="text-align:right;"> depth </th> <th style="text-align:left;"> level </th> <th style="text-align:right;"> latitude </th> <th style="text-align:right;"> longitude </th> <th style="text-align:right;"> picoeuks </th> <th style="text-align:right;"> nanoeuks </th> <th style="text-align:right;"> phosphates </th> <th style="text-align:right;"> nitrates </th> <th style="text-align:right;"> temperature </th> <th style="text-align:right;"> salinity </th> </tr> </thead> <tbody> <tr> <td style="text-align:left;background-color: lightyellow;"> 10 </td> <td style="text-align:right;"> 1 </td> <td style="text-align:left;"> 81 </td> <td style="text-align:left;"> 2013-11-13 </td> <td style="text-align:left;"> 1899-12-31 01:00:00 </td> <td style="text-align:right;"> 140 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -27.42 </td> <td style="text-align:right;"> -44.72 </td> <td style="text-align:right;"> 3278 </td> <td style="text-align:right;"> 1232 </td> <td style="text-align:right;"> 0.20 </td> <td style="text-align:right;"> 0.26 </td> <td style="text-align:right;"> 17.3 </td> <td style="text-align:right;"> 35.9 </td> </tr> <tr> <td style="text-align:left;background-color: lightyellow;"> 11 </td> <td style="text-align:right;"> 1 </td> <td style="text-align:left;"> 85 </td> <td style="text-align:left;"> 2013-11-13 </td> <td style="text-align:left;"> 1899-12-31 13:30:00 </td> <td style="text-align:right;"> 110 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -26.80 </td> <td style="text-align:right;"> -45.30 </td> <td style="text-align:right;"> 16312 </td> <td style="text-align:right;"> 1615 </td> <td style="text-align:right;"> 0.29 </td> <td style="text-align:right;"> 0.22 </td> <td style="text-align:right;"> 21.3 </td> <td style="text-align:right;"> 36.5 </td> </tr> <tr> <td style="text-align:left;background-color: lightyellow;"> 120 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 96 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 1899-12-31 23:50:00 </td> <td style="text-align:right;"> 5 </td> <td style="text-align:left;"> Surf </td> <td style="text-align:right;"> -27.39 </td> <td style="text-align:right;"> -47.82 </td> <td style="text-align:right;"> 1150 </td> <td style="text-align:right;"> 75 </td> <td style="text-align:right;"> 0.43 </td> <td style="text-align:right;"> 0.19 </td> <td style="text-align:right;"> 23.1 </td> <td style="text-align:right;"> 33.5 </td> </tr> <tr> <td style="text-align:left;background-color: lightyellow;"> 121 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 96 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 1899-12-31 23:50:00 </td> <td style="text-align:right;"> 30 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -27.39 </td> <td style="text-align:right;"> -47.82 </td> <td style="text-align:right;"> 1737 </td> <td style="text-align:right;"> 218 </td> <td style="text-align:right;"> 0.43 </td> <td style="text-align:right;"> 0.23 </td> <td style="text-align:right;"> 22.6 </td> <td style="text-align:right;"> 33.7 </td> </tr> <tr> <td style="text-align:left;background-color: lightyellow;"> 122 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 96 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 1899-12-31 23:50:00 </td> <td style="text-align:right;"> 50 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -27.39 </td> <td style="text-align:right;"> -47.82 </td> <td style="text-align:right;"> 853 </td> <td style="text-align:right;"> 234 </td> <td style="text-align:right;"> 0.56 </td> <td style="text-align:right;"> 0.21 </td> <td style="text-align:right;"> 20.3 </td> <td style="text-align:right;"> 35.9 </td> </tr> <tr> <td style="text-align:left;background-color: lightyellow;"> 125 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 98 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 1899-12-31 05:00:00 </td> <td style="text-align:right;"> 5 </td> <td style="text-align:left;"> Surf </td> <td style="text-align:right;"> -27.59 </td> <td style="text-align:right;"> -47.39 </td> <td style="text-align:right;"> 3086 </td> <td style="text-align:right;"> 1300 </td> <td style="text-align:right;"> 0.29 </td> <td style="text-align:right;"> 0.25 </td> <td style="text-align:right;"> 23.1 </td> <td style="text-align:right;"> 35.7 </td> </tr> <tr> <td style="text-align:left;background-color: lightyellow;"> 126 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 98 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 1899-12-31 05:00:00 </td> <td style="text-align:right;"> 50 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -27.59 </td> <td style="text-align:right;"> -47.39 </td> <td style="text-align:right;"> 1217 </td> <td style="text-align:right;"> 782 </td> <td style="text-align:right;"> 0.25 </td> <td style="text-align:right;"> 0.20 </td> <td style="text-align:right;"> 23.7 </td> <td style="text-align:right;"> 37.2 </td> </tr> <tr> <td style="text-align:left;background-color: lightyellow;"> 127 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 98 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 1899-12-31 05:00:00 </td> <td style="text-align:right;"> 85 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -27.59 </td> <td style="text-align:right;"> -47.39 </td> <td style="text-align:right;"> 3420 </td> <td style="text-align:right;"> 226 </td> <td style="text-align:right;"> 0.25 </td> <td style="text-align:right;"> 0.47 </td> <td style="text-align:right;"> 22.9 </td> <td style="text-align:right;"> 37.0 </td> </tr> <tr> <td style="text-align:left;background-color: lightyellow;"> 13 </td> <td style="text-align:right;"> 1 </td> <td style="text-align:left;"> 86 </td> <td style="text-align:left;"> 2013-11-13 </td> <td style="text-align:left;"> 1899-12-31 17:00:00 </td> <td style="text-align:right;"> 105 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -26.33 </td> <td style="text-align:right;"> -45.41 </td> <td style="text-align:right;"> 6366 </td> <td style="text-align:right;"> 1007 </td> <td style="text-align:right;"> 0.34 </td> <td style="text-align:right;"> 0.15 </td> <td style="text-align:right;"> 20.9 </td> <td style="text-align:right;"> 36.3 </td> </tr> <tr> <td style="text-align:left;background-color: lightyellow;"> 140 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 101 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 1899-12-31 12:00:00 </td> <td style="text-align:right;"> 5 </td> <td style="text-align:left;"> Surf </td> <td style="text-align:right;"> -27.79 </td> <td style="text-align:right;"> -46.96 </td> <td style="text-align:right;"> 500 </td> <td style="text-align:right;"> 366 </td> <td style="text-align:right;"> 0.29 </td> <td style="text-align:right;"> 0.14 </td> <td style="text-align:right;"> 23.5 </td> <td style="text-align:right;"> 36.5 </td> </tr> </tbody> </table> --- ## Creating new variables - mutate ```r samples <- samples %>% dplyr::mutate(pico_pct = picoeuks/(picoeuks+nanoeuks)*100) ``` -- <table class="table table-striped table-hover table-condensed" style="font-size: 9px; margin-left: auto; margin-right: auto;"> <thead> <tr> <th style="text-align:left;"> sample_number </th> <th style="text-align:right;"> transect </th> <th style="text-align:left;"> station </th> <th style="text-align:left;"> date </th> <th style="text-align:left;"> time </th> <th style="text-align:right;"> depth </th> <th style="text-align:left;"> level </th> <th style="text-align:right;"> latitude </th> <th style="text-align:right;"> longitude </th> <th style="text-align:right;"> picoeuks </th> <th style="text-align:right;"> nanoeuks </th> <th style="text-align:right;"> phosphates </th> <th style="text-align:right;"> nitrates </th> <th style="text-align:right;"> temperature </th> <th style="text-align:right;"> salinity </th> <th style="text-align:right;"> pico_pct </th> </tr> </thead> <tbody> <tr> <td style="text-align:left;"> 10 </td> <td style="text-align:right;"> 1 </td> <td style="text-align:left;"> 81 </td> <td style="text-align:left;"> 2013-11-13 </td> <td style="text-align:left;"> 1899-12-31 01:00:00 </td> <td style="text-align:right;"> 140 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -27.42 </td> <td style="text-align:right;"> -44.72 </td> <td style="text-align:right;"> 3278 </td> <td style="text-align:right;"> 1232 </td> <td style="text-align:right;"> 0.20 </td> <td style="text-align:right;"> 0.26 </td> <td style="text-align:right;"> 17.3 </td> <td style="text-align:right;"> 35.9 </td> <td style="text-align:right;font-weight: bold;background-color: lightyellow;"> 72.68293 </td> </tr> <tr> <td style="text-align:left;"> 11 </td> <td style="text-align:right;"> 1 </td> <td style="text-align:left;"> 85 </td> <td style="text-align:left;"> 2013-11-13 </td> <td style="text-align:left;"> 1899-12-31 13:30:00 </td> <td style="text-align:right;"> 110 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -26.80 </td> <td style="text-align:right;"> -45.30 </td> <td style="text-align:right;"> 16312 </td> <td style="text-align:right;"> 1615 </td> <td style="text-align:right;"> 0.29 </td> <td style="text-align:right;"> 0.22 </td> <td style="text-align:right;"> 21.3 </td> <td style="text-align:right;"> 36.5 </td> <td style="text-align:right;font-weight: bold;background-color: lightyellow;"> 90.99124 </td> </tr> <tr> <td style="text-align:left;"> 120 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 96 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 1899-12-31 23:50:00 </td> <td style="text-align:right;"> 5 </td> <td style="text-align:left;"> Surf </td> <td style="text-align:right;"> -27.39 </td> <td style="text-align:right;"> -47.82 </td> <td style="text-align:right;"> 1150 </td> <td style="text-align:right;"> 75 </td> <td style="text-align:right;"> 0.43 </td> <td style="text-align:right;"> 0.19 </td> <td style="text-align:right;"> 23.1 </td> <td style="text-align:right;"> 33.5 </td> <td style="text-align:right;font-weight: bold;background-color: lightyellow;"> 93.87755 </td> </tr> <tr> <td style="text-align:left;"> 121 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 96 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 1899-12-31 23:50:00 </td> <td style="text-align:right;"> 30 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -27.39 </td> <td style="text-align:right;"> -47.82 </td> <td style="text-align:right;"> 1737 </td> <td style="text-align:right;"> 218 </td> <td style="text-align:right;"> 0.43 </td> <td style="text-align:right;"> 0.23 </td> <td style="text-align:right;"> 22.6 </td> <td style="text-align:right;"> 33.7 </td> <td style="text-align:right;font-weight: bold;background-color: lightyellow;"> 88.84910 </td> </tr> <tr> <td style="text-align:left;"> 122 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 96 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 1899-12-31 23:50:00 </td> <td style="text-align:right;"> 50 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -27.39 </td> <td style="text-align:right;"> -47.82 </td> <td style="text-align:right;"> 853 </td> <td style="text-align:right;"> 234 </td> <td style="text-align:right;"> 0.56 </td> <td style="text-align:right;"> 0.21 </td> <td style="text-align:right;"> 20.3 </td> <td style="text-align:right;"> 35.9 </td> <td style="text-align:right;font-weight: bold;background-color: lightyellow;"> 78.47286 </td> </tr> <tr> <td style="text-align:left;"> 125 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 98 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 1899-12-31 05:00:00 </td> <td style="text-align:right;"> 5 </td> <td style="text-align:left;"> Surf </td> <td style="text-align:right;"> -27.59 </td> <td style="text-align:right;"> -47.39 </td> <td style="text-align:right;"> 3086 </td> <td style="text-align:right;"> 1300 </td> <td style="text-align:right;"> 0.29 </td> <td style="text-align:right;"> 0.25 </td> <td style="text-align:right;"> 23.1 </td> <td style="text-align:right;"> 35.7 </td> <td style="text-align:right;font-weight: bold;background-color: lightyellow;"> 70.36024 </td> </tr> <tr> <td style="text-align:left;"> 126 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 98 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 1899-12-31 05:00:00 </td> <td style="text-align:right;"> 50 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -27.59 </td> <td style="text-align:right;"> -47.39 </td> <td style="text-align:right;"> 1217 </td> <td style="text-align:right;"> 782 </td> <td style="text-align:right;"> 0.25 </td> <td style="text-align:right;"> 0.20 </td> <td style="text-align:right;"> 23.7 </td> <td style="text-align:right;"> 37.2 </td> <td style="text-align:right;font-weight: bold;background-color: lightyellow;"> 60.88044 </td> </tr> <tr> <td style="text-align:left;"> 127 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 98 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 1899-12-31 05:00:00 </td> <td style="text-align:right;"> 85 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -27.59 </td> <td style="text-align:right;"> -47.39 </td> <td style="text-align:right;"> 3420 </td> <td style="text-align:right;"> 226 </td> <td style="text-align:right;"> 0.25 </td> <td style="text-align:right;"> 0.47 </td> <td style="text-align:right;"> 22.9 </td> <td style="text-align:right;"> 37.0 </td> <td style="text-align:right;font-weight: bold;background-color: lightyellow;"> 93.80143 </td> </tr> <tr> <td style="text-align:left;"> 13 </td> <td style="text-align:right;"> 1 </td> <td style="text-align:left;"> 86 </td> <td style="text-align:left;"> 2013-11-13 </td> <td style="text-align:left;"> 1899-12-31 17:00:00 </td> <td style="text-align:right;"> 105 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -26.33 </td> <td style="text-align:right;"> -45.41 </td> <td style="text-align:right;"> 6366 </td> <td style="text-align:right;"> 1007 </td> <td style="text-align:right;"> 0.34 </td> <td style="text-align:right;"> 0.15 </td> <td style="text-align:right;"> 20.9 </td> <td style="text-align:right;"> 36.3 </td> <td style="text-align:right;font-weight: bold;background-color: lightyellow;"> 86.34206 </td> </tr> <tr> <td style="text-align:left;"> 140 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 101 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 1899-12-31 12:00:00 </td> <td style="text-align:right;"> 5 </td> <td style="text-align:left;"> Surf </td> <td style="text-align:right;"> -27.79 </td> <td style="text-align:right;"> -46.96 </td> <td style="text-align:right;"> 500 </td> <td style="text-align:right;"> 366 </td> <td style="text-align:right;"> 0.29 </td> <td style="text-align:right;"> 0.14 </td> <td style="text-align:right;"> 23.5 </td> <td style="text-align:right;"> 36.5 </td> <td style="text-align:right;font-weight: bold;background-color: lightyellow;"> 57.73672 </td> </tr> </tbody> </table> * You can also use __transmute()__ but then it will drop all the other columns. * It is much much better to compute new variables in R than in Excel, because you can easily track and correct errors. --- ## Using the pipe operator you can chain operations ```r samples_select <- samples %>% dplyr::select(sample_number:nanoeuks, level) %>% dplyr::mutate(pico_pct = picoeuks/(picoeuks+nanoeuks)*100) ``` -- <table class="table table-striped table-hover table-condensed" style="font-size: 9px; margin-left: auto; margin-right: auto;"> <thead> <tr> <th style="text-align:left;"> sample_number </th> <th style="text-align:right;"> transect </th> <th style="text-align:left;"> station </th> <th style="text-align:left;"> date </th> <th style="text-align:left;"> time </th> <th style="text-align:right;"> depth </th> <th style="text-align:left;"> level </th> <th style="text-align:right;"> latitude </th> <th style="text-align:right;"> longitude </th> <th style="text-align:right;"> picoeuks </th> <th style="text-align:right;"> nanoeuks </th> <th style="text-align:right;"> pico_pct </th> </tr> </thead> <tbody> <tr> <td style="text-align:left;"> 10 </td> <td style="text-align:right;"> 1 </td> <td style="text-align:left;"> 81 </td> <td style="text-align:left;"> 2013-11-13 </td> <td style="text-align:left;"> 1899-12-31 01:00:00 </td> <td style="text-align:right;"> 140 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -27.42 </td> <td style="text-align:right;"> -44.72 </td> <td style="text-align:right;"> 3278 </td> <td style="text-align:right;"> 1232 </td> <td style="text-align:right;font-weight: bold;background-color: lightyellow;"> 72.68293 </td> </tr> <tr> <td style="text-align:left;"> 11 </td> <td style="text-align:right;"> 1 </td> <td style="text-align:left;"> 85 </td> <td style="text-align:left;"> 2013-11-13 </td> <td style="text-align:left;"> 1899-12-31 13:30:00 </td> <td style="text-align:right;"> 110 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -26.80 </td> <td style="text-align:right;"> -45.30 </td> <td style="text-align:right;"> 16312 </td> <td style="text-align:right;"> 1615 </td> <td style="text-align:right;font-weight: bold;background-color: lightyellow;"> 90.99124 </td> </tr> <tr> <td style="text-align:left;"> 120 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 96 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 1899-12-31 23:50:00 </td> <td style="text-align:right;"> 5 </td> <td style="text-align:left;"> Surf </td> <td style="text-align:right;"> -27.39 </td> <td style="text-align:right;"> -47.82 </td> <td style="text-align:right;"> 1150 </td> <td style="text-align:right;"> 75 </td> <td style="text-align:right;font-weight: bold;background-color: lightyellow;"> 93.87755 </td> </tr> <tr> <td style="text-align:left;"> 121 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 96 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 1899-12-31 23:50:00 </td> <td style="text-align:right;"> 30 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -27.39 </td> <td style="text-align:right;"> -47.82 </td> <td style="text-align:right;"> 1737 </td> <td style="text-align:right;"> 218 </td> <td style="text-align:right;font-weight: bold;background-color: lightyellow;"> 88.84910 </td> </tr> <tr> <td style="text-align:left;"> 122 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 96 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 1899-12-31 23:50:00 </td> <td style="text-align:right;"> 50 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -27.39 </td> <td style="text-align:right;"> -47.82 </td> <td style="text-align:right;"> 853 </td> <td style="text-align:right;"> 234 </td> <td style="text-align:right;font-weight: bold;background-color: lightyellow;"> 78.47286 </td> </tr> <tr> <td style="text-align:left;"> 125 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 98 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 1899-12-31 05:00:00 </td> <td style="text-align:right;"> 5 </td> <td style="text-align:left;"> Surf </td> <td style="text-align:right;"> -27.59 </td> <td style="text-align:right;"> -47.39 </td> <td style="text-align:right;"> 3086 </td> <td style="text-align:right;"> 1300 </td> <td style="text-align:right;font-weight: bold;background-color: lightyellow;"> 70.36024 </td> </tr> <tr> <td style="text-align:left;"> 126 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 98 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 1899-12-31 05:00:00 </td> <td style="text-align:right;"> 50 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -27.59 </td> <td style="text-align:right;"> -47.39 </td> <td style="text-align:right;"> 1217 </td> <td style="text-align:right;"> 782 </td> <td style="text-align:right;font-weight: bold;background-color: lightyellow;"> 60.88044 </td> </tr> <tr> <td style="text-align:left;"> 127 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 98 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 1899-12-31 05:00:00 </td> <td style="text-align:right;"> 85 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -27.59 </td> <td style="text-align:right;"> -47.39 </td> <td style="text-align:right;"> 3420 </td> <td style="text-align:right;"> 226 </td> <td style="text-align:right;font-weight: bold;background-color: lightyellow;"> 93.80143 </td> </tr> <tr> <td style="text-align:left;"> 13 </td> <td style="text-align:right;"> 1 </td> <td style="text-align:left;"> 86 </td> <td style="text-align:left;"> 2013-11-13 </td> <td style="text-align:left;"> 1899-12-31 17:00:00 </td> <td style="text-align:right;"> 105 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -26.33 </td> <td style="text-align:right;"> -45.41 </td> <td style="text-align:right;"> 6366 </td> <td style="text-align:right;"> 1007 </td> <td style="text-align:right;font-weight: bold;background-color: lightyellow;"> 86.34206 </td> </tr> <tr> <td style="text-align:left;"> 140 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 101 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 1899-12-31 12:00:00 </td> <td style="text-align:right;"> 5 </td> <td style="text-align:left;"> Surf </td> <td style="text-align:right;"> -27.79 </td> <td style="text-align:right;"> -46.96 </td> <td style="text-align:right;"> 500 </td> <td style="text-align:right;"> 366 </td> <td style="text-align:right;font-weight: bold;background-color: lightyellow;"> 57.73672 </td> </tr> </tbody> </table> --- ## Creating labels with mutate and stringr functions ```r samples <- samples %>% dplyr::mutate(sample_label = str_c("TR",transect,"St",station, sep="_")) ``` -- <table class="table table-striped table-hover table-condensed" style="font-size: 9px; margin-left: auto; margin-right: auto;"> <thead> <tr> <th style="text-align:left;"> sample_number </th> <th style="text-align:right;"> transect </th> <th style="text-align:left;"> station </th> <th style="text-align:left;"> date </th> <th style="text-align:left;"> time </th> <th style="text-align:left;"> sample_label </th> </tr> </thead> <tbody> <tr> <td style="text-align:left;"> 10 </td> <td style="text-align:right;"> 1 </td> <td style="text-align:left;"> 81 </td> <td style="text-align:left;"> 2013-11-13 </td> <td style="text-align:left;"> 1899-12-31 01:00:00 </td> <td style="text-align:left;font-weight: bold;background-color: lightyellow;"> TR_1_St_81 </td> </tr> <tr> <td style="text-align:left;"> 11 </td> <td style="text-align:right;"> 1 </td> <td style="text-align:left;"> 85 </td> <td style="text-align:left;"> 2013-11-13 </td> <td style="text-align:left;"> 1899-12-31 13:30:00 </td> <td style="text-align:left;font-weight: bold;background-color: lightyellow;"> TR_1_St_85 </td> </tr> <tr> <td style="text-align:left;"> 120 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 96 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 1899-12-31 23:50:00 </td> <td style="text-align:left;font-weight: bold;background-color: lightyellow;"> TR_2_St_96 </td> </tr> <tr> <td style="text-align:left;"> 121 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 96 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 1899-12-31 23:50:00 </td> <td style="text-align:left;font-weight: bold;background-color: lightyellow;"> TR_2_St_96 </td> </tr> <tr> <td style="text-align:left;"> 122 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 96 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 1899-12-31 23:50:00 </td> <td style="text-align:left;font-weight: bold;background-color: lightyellow;"> TR_2_St_96 </td> </tr> <tr> <td style="text-align:left;"> 125 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 98 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 1899-12-31 05:00:00 </td> <td style="text-align:left;font-weight: bold;background-color: lightyellow;"> TR_2_St_98 </td> </tr> <tr> <td style="text-align:left;"> 126 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 98 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 1899-12-31 05:00:00 </td> <td style="text-align:left;font-weight: bold;background-color: lightyellow;"> TR_2_St_98 </td> </tr> <tr> <td style="text-align:left;"> 127 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 98 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 1899-12-31 05:00:00 </td> <td style="text-align:left;font-weight: bold;background-color: lightyellow;"> TR_2_St_98 </td> </tr> <tr> <td style="text-align:left;"> 13 </td> <td style="text-align:right;"> 1 </td> <td style="text-align:left;"> 86 </td> <td style="text-align:left;"> 2013-11-13 </td> <td style="text-align:left;"> 1899-12-31 17:00:00 </td> <td style="text-align:left;font-weight: bold;background-color: lightyellow;"> TR_1_St_86 </td> </tr> <tr> <td style="text-align:left;"> 140 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 101 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 1899-12-31 12:00:00 </td> <td style="text-align:left;font-weight: bold;background-color: lightyellow;"> TR_2_St_101 </td> </tr> </tbody> </table> --- ## Changing type of some columns - mutate ```r samples <- samples %>% dplyr::mutate(time = str_c(lubridate::hour(time), lubridate::minute(time), sep=":")) ``` -- <table class="table table-striped table-hover table-condensed" style="font-size: 9px; margin-left: auto; margin-right: auto;"> <thead> <tr> <th style="text-align:left;"> sample_number </th> <th style="text-align:right;"> transect </th> <th style="text-align:left;"> station </th> <th style="text-align:left;"> date </th> <th style="text-align:left;"> time </th> <th style="text-align:right;"> depth </th> <th style="text-align:left;"> level </th> <th style="text-align:right;"> latitude </th> <th style="text-align:right;"> longitude </th> <th style="text-align:right;"> picoeuks </th> <th style="text-align:right;"> nanoeuks </th> <th style="text-align:right;"> phosphates </th> <th style="text-align:right;"> nitrates </th> <th style="text-align:right;"> temperature </th> <th style="text-align:right;"> salinity </th> <th style="text-align:right;"> pico_pct </th> </tr> </thead> <tbody> <tr> <td style="text-align:left;"> 10 </td> <td style="text-align:right;"> 1 </td> <td style="text-align:left;"> 81 </td> <td style="text-align:left;"> 2013-11-13 </td> <td style="text-align:left;font-weight: bold;background-color: lightyellow;"> 1:0 </td> <td style="text-align:right;"> 140 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -27.42 </td> <td style="text-align:right;"> -44.72 </td> <td style="text-align:right;"> 3278 </td> <td style="text-align:right;"> 1232 </td> <td style="text-align:right;"> 0.20 </td> <td style="text-align:right;"> 0.26 </td> <td style="text-align:right;"> 17.3 </td> <td style="text-align:right;"> 35.9 </td> <td style="text-align:right;"> 72.68293 </td> </tr> <tr> <td style="text-align:left;"> 11 </td> <td style="text-align:right;"> 1 </td> <td style="text-align:left;"> 85 </td> <td style="text-align:left;"> 2013-11-13 </td> <td style="text-align:left;font-weight: bold;background-color: lightyellow;"> 13:30 </td> <td style="text-align:right;"> 110 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -26.80 </td> <td style="text-align:right;"> -45.30 </td> <td style="text-align:right;"> 16312 </td> <td style="text-align:right;"> 1615 </td> <td style="text-align:right;"> 0.29 </td> <td style="text-align:right;"> 0.22 </td> <td style="text-align:right;"> 21.3 </td> <td style="text-align:right;"> 36.5 </td> <td style="text-align:right;"> 90.99124 </td> </tr> <tr> <td style="text-align:left;"> 120 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 96 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;font-weight: bold;background-color: lightyellow;"> 23:50 </td> <td style="text-align:right;"> 5 </td> <td style="text-align:left;"> Surf </td> <td style="text-align:right;"> -27.39 </td> <td style="text-align:right;"> -47.82 </td> <td style="text-align:right;"> 1150 </td> <td style="text-align:right;"> 75 </td> <td style="text-align:right;"> 0.43 </td> <td style="text-align:right;"> 0.19 </td> <td style="text-align:right;"> 23.1 </td> <td style="text-align:right;"> 33.5 </td> <td style="text-align:right;"> 93.87755 </td> </tr> <tr> <td style="text-align:left;"> 121 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 96 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;font-weight: bold;background-color: lightyellow;"> 23:50 </td> <td style="text-align:right;"> 30 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -27.39 </td> <td style="text-align:right;"> -47.82 </td> <td style="text-align:right;"> 1737 </td> <td style="text-align:right;"> 218 </td> <td style="text-align:right;"> 0.43 </td> <td style="text-align:right;"> 0.23 </td> <td style="text-align:right;"> 22.6 </td> <td style="text-align:right;"> 33.7 </td> <td style="text-align:right;"> 88.84910 </td> </tr> <tr> <td style="text-align:left;"> 122 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 96 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;font-weight: bold;background-color: lightyellow;"> 23:50 </td> <td style="text-align:right;"> 50 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -27.39 </td> <td style="text-align:right;"> -47.82 </td> <td style="text-align:right;"> 853 </td> <td style="text-align:right;"> 234 </td> <td style="text-align:right;"> 0.56 </td> <td style="text-align:right;"> 0.21 </td> <td style="text-align:right;"> 20.3 </td> <td style="text-align:right;"> 35.9 </td> <td style="text-align:right;"> 78.47286 </td> </tr> <tr> <td style="text-align:left;"> 125 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 98 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;font-weight: bold;background-color: lightyellow;"> 5:0 </td> <td style="text-align:right;"> 5 </td> <td style="text-align:left;"> Surf </td> <td style="text-align:right;"> -27.59 </td> <td style="text-align:right;"> -47.39 </td> <td style="text-align:right;"> 3086 </td> <td style="text-align:right;"> 1300 </td> <td style="text-align:right;"> 0.29 </td> <td style="text-align:right;"> 0.25 </td> <td style="text-align:right;"> 23.1 </td> <td style="text-align:right;"> 35.7 </td> <td style="text-align:right;"> 70.36024 </td> </tr> <tr> <td style="text-align:left;"> 126 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 98 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;font-weight: bold;background-color: lightyellow;"> 5:0 </td> <td style="text-align:right;"> 50 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -27.59 </td> <td style="text-align:right;"> -47.39 </td> <td style="text-align:right;"> 1217 </td> <td style="text-align:right;"> 782 </td> <td style="text-align:right;"> 0.25 </td> <td style="text-align:right;"> 0.20 </td> <td style="text-align:right;"> 23.7 </td> <td style="text-align:right;"> 37.2 </td> <td style="text-align:right;"> 60.88044 </td> </tr> <tr> <td style="text-align:left;"> 127 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 98 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;font-weight: bold;background-color: lightyellow;"> 5:0 </td> <td style="text-align:right;"> 85 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -27.59 </td> <td style="text-align:right;"> -47.39 </td> <td style="text-align:right;"> 3420 </td> <td style="text-align:right;"> 226 </td> <td style="text-align:right;"> 0.25 </td> <td style="text-align:right;"> 0.47 </td> <td style="text-align:right;"> 22.9 </td> <td style="text-align:right;"> 37.0 </td> <td style="text-align:right;"> 93.80143 </td> </tr> <tr> <td style="text-align:left;"> 13 </td> <td style="text-align:right;"> 1 </td> <td style="text-align:left;"> 86 </td> <td style="text-align:left;"> 2013-11-13 </td> <td style="text-align:left;font-weight: bold;background-color: lightyellow;"> 17:0 </td> <td style="text-align:right;"> 105 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -26.33 </td> <td style="text-align:right;"> -45.41 </td> <td style="text-align:right;"> 6366 </td> <td style="text-align:right;"> 1007 </td> <td style="text-align:right;"> 0.34 </td> <td style="text-align:right;"> 0.15 </td> <td style="text-align:right;"> 20.9 </td> <td style="text-align:right;"> 36.3 </td> <td style="text-align:right;"> 86.34206 </td> </tr> <tr> <td style="text-align:left;"> 140 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 101 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;font-weight: bold;background-color: lightyellow;"> 12:0 </td> <td style="text-align:right;"> 5 </td> <td style="text-align:left;"> Surf </td> <td style="text-align:right;"> -27.79 </td> <td style="text-align:right;"> -46.96 </td> <td style="text-align:right;"> 500 </td> <td style="text-align:right;"> 366 </td> <td style="text-align:right;"> 0.29 </td> <td style="text-align:right;"> 0.14 </td> <td style="text-align:right;"> 23.5 </td> <td style="text-align:right;"> 36.5 </td> <td style="text-align:right;"> 57.73672 </td> </tr> </tbody> </table> * Use the `lubridate` package to manipulate dates --- layout: true # Manipulating rows --- ## Order rows - arrange ```r samples <- samples %>% dplyr::arrange(transect, station) ``` -- <table class="table table-striped table-hover table-condensed" style="font-size: 9px; margin-left: auto; margin-right: auto;"> <thead> <tr> <th style="text-align:left;"> sample_number </th> <th style="text-align:right;"> transect </th> <th style="text-align:left;"> station </th> <th style="text-align:left;"> date </th> <th style="text-align:left;"> time </th> <th style="text-align:right;"> depth </th> <th style="text-align:left;"> level </th> <th style="text-align:right;"> latitude </th> <th style="text-align:right;"> longitude </th> <th style="text-align:right;"> picoeuks </th> <th style="text-align:right;"> nanoeuks </th> <th style="text-align:right;"> phosphates </th> <th style="text-align:right;"> nitrates </th> <th style="text-align:right;"> temperature </th> <th style="text-align:right;"> salinity </th> <th style="text-align:right;"> pico_pct </th> </tr> </thead> <tbody> <tr> <td style="text-align:left;"> 3 </td> <td style="text-align:right;"> 0 </td> <td style="text-align:left;font-weight: bold;background-color: lightyellow;"> 19 </td> <td style="text-align:left;"> 2013-11-02 </td> <td style="text-align:left;"> 13:30 </td> <td style="text-align:right;"> 5 </td> <td style="text-align:left;"> Surf </td> <td style="text-align:right;"> -25.79 </td> <td style="text-align:right;"> -40.36 </td> <td style="text-align:right;"> 1005 </td> <td style="text-align:right;"> 898 </td> <td style="text-align:right;"> 0.29 </td> <td style="text-align:right;"> 0.48 </td> <td style="text-align:right;"> 22.7 </td> <td style="text-align:right;"> 36.9 </td> <td style="text-align:right;"> 52.81135 </td> </tr> <tr> <td style="text-align:left;"> 5 </td> <td style="text-align:right;"> 0 </td> <td style="text-align:left;font-weight: bold;background-color: lightyellow;"> 21 </td> <td style="text-align:left;"> 2013-11-02 </td> <td style="text-align:left;"> 0:0 </td> <td style="text-align:right;"> 5 </td> <td style="text-align:left;"> Surf </td> <td style="text-align:right;"> -26.23 </td> <td style="text-align:right;"> -40.09 </td> <td style="text-align:right;"> 793 </td> <td style="text-align:right;"> 660 </td> <td style="text-align:right;"> 0.16 </td> <td style="text-align:right;"> 0.90 </td> <td style="text-align:right;"> 22.8 </td> <td style="text-align:right;"> 36.9 </td> <td style="text-align:right;"> 54.57674 </td> </tr> <tr> <td style="text-align:left;"> 7 </td> <td style="text-align:right;"> 0 </td> <td style="text-align:left;font-weight: bold;background-color: lightyellow;"> 26 </td> <td style="text-align:left;"> 2013-11-03 </td> <td style="text-align:left;"> 19:30 </td> <td style="text-align:right;"> 5 </td> <td style="text-align:left;"> Surf </td> <td style="text-align:right;"> -27.31 </td> <td style="text-align:right;"> -39.38 </td> <td style="text-align:right;"> 907 </td> <td style="text-align:right;"> 856 </td> <td style="text-align:right;"> 0.20 </td> <td style="text-align:right;"> 0.50 </td> <td style="text-align:right;"> 21.2 </td> <td style="text-align:right;"> 36.4 </td> <td style="text-align:right;"> 51.44640 </td> </tr> <tr> <td style="text-align:left;"> 1 </td> <td style="text-align:right;"> 0 </td> <td style="text-align:left;font-weight: bold;background-color: lightyellow;"> 6 </td> <td style="text-align:left;"> 2013-10-31 </td> <td style="text-align:left;"> 5:20 </td> <td style="text-align:right;"> 45 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -23.58 </td> <td style="text-align:right;"> -41.78 </td> <td style="text-align:right;"> 7651 </td> <td style="text-align:right;"> 4845 </td> <td style="text-align:right;"> 0.47 </td> <td style="text-align:right;"> 1.07 </td> <td style="text-align:right;"> 19.7 </td> <td style="text-align:right;"> 36.3 </td> <td style="text-align:right;"> 61.22759 </td> </tr> <tr> <td style="text-align:left;"> 2 </td> <td style="text-align:right;"> 0 </td> <td style="text-align:left;font-weight: bold;background-color: lightyellow;"> 6 </td> <td style="text-align:left;"> 2013-10-31 </td> <td style="text-align:left;"> 5:20 </td> <td style="text-align:right;"> 45 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -23.58 </td> <td style="text-align:right;"> -41.78 </td> <td style="text-align:right;"> 7343 </td> <td style="text-align:right;"> 3258 </td> <td style="text-align:right;"> 0.47 </td> <td style="text-align:right;"> 1.07 </td> <td style="text-align:right;"> 19.7 </td> <td style="text-align:right;"> 36.3 </td> <td style="text-align:right;"> 69.26705 </td> </tr> <tr> <td style="text-align:left;"> 10 </td> <td style="text-align:right;"> 1 </td> <td style="text-align:left;font-weight: bold;background-color: lightyellow;"> 81 </td> <td style="text-align:left;"> 2013-11-13 </td> <td style="text-align:left;"> 1:0 </td> <td style="text-align:right;"> 140 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -27.42 </td> <td style="text-align:right;"> -44.72 </td> <td style="text-align:right;"> 3278 </td> <td style="text-align:right;"> 1232 </td> <td style="text-align:right;"> 0.20 </td> <td style="text-align:right;"> 0.26 </td> <td style="text-align:right;"> 17.3 </td> <td style="text-align:right;"> 35.9 </td> <td style="text-align:right;"> 72.68293 </td> </tr> <tr> <td style="text-align:left;"> 9 </td> <td style="text-align:right;"> 1 </td> <td style="text-align:left;font-weight: bold;background-color: lightyellow;"> 81 </td> <td style="text-align:left;"> 2013-11-13 </td> <td style="text-align:left;"> 1:0 </td> <td style="text-align:right;"> 140 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -27.42 </td> <td style="text-align:right;"> -44.72 </td> <td style="text-align:right;"> 3181 </td> <td style="text-align:right;"> 1235 </td> <td style="text-align:right;"> 0.20 </td> <td style="text-align:right;"> 0.26 </td> <td style="text-align:right;"> 17.3 </td> <td style="text-align:right;"> 35.9 </td> <td style="text-align:right;"> 72.03351 </td> </tr> <tr> <td style="text-align:left;"> 11 </td> <td style="text-align:right;"> 1 </td> <td style="text-align:left;font-weight: bold;background-color: lightyellow;"> 85 </td> <td style="text-align:left;"> 2013-11-13 </td> <td style="text-align:left;"> 13:30 </td> <td style="text-align:right;"> 110 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -26.80 </td> <td style="text-align:right;"> -45.30 </td> <td style="text-align:right;"> 16312 </td> <td style="text-align:right;"> 1615 </td> <td style="text-align:right;"> 0.29 </td> <td style="text-align:right;"> 0.22 </td> <td style="text-align:right;"> 21.3 </td> <td style="text-align:right;"> 36.5 </td> <td style="text-align:right;"> 90.99124 </td> </tr> <tr> <td style="text-align:left;"> 13 </td> <td style="text-align:right;"> 1 </td> <td style="text-align:left;font-weight: bold;background-color: lightyellow;"> 86 </td> <td style="text-align:left;"> 2013-11-13 </td> <td style="text-align:left;"> 17:0 </td> <td style="text-align:right;"> 105 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -26.33 </td> <td style="text-align:right;"> -45.41 </td> <td style="text-align:right;"> 6366 </td> <td style="text-align:right;"> 1007 </td> <td style="text-align:right;"> 0.34 </td> <td style="text-align:right;"> 0.15 </td> <td style="text-align:right;"> 20.9 </td> <td style="text-align:right;"> 36.3 </td> <td style="text-align:right;"> 86.34206 </td> </tr> <tr> <td style="text-align:left;"> 15 </td> <td style="text-align:right;"> 1 </td> <td style="text-align:left;font-weight: bold;background-color: lightyellow;"> 87 </td> <td style="text-align:left;"> 2013-11-13 </td> <td style="text-align:left;"> 19:30 </td> <td style="text-align:right;"> 105 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -26.22 </td> <td style="text-align:right;"> -45.48 </td> <td style="text-align:right;"> 6189 </td> <td style="text-align:right;"> 622 </td> <td style="text-align:right;"> 0.47 </td> <td style="text-align:right;"> 1.51 </td> <td style="text-align:right;"> 19.5 </td> <td style="text-align:right;"> 36.1 </td> <td style="text-align:right;"> 90.86771 </td> </tr> </tbody> </table> * Station 6 is not ordered numerically. It is because __station__ is a character column. --- ## Order rows - transform to numeric ```r samples <- samples %>% dplyr::mutate(station = as.numeric(station)) %>% dplyr::arrange(transect, station) ``` ``` Warning in evalq(as.numeric(station), <environment>): NAs introduced by coercion ``` -- <table class="table table-striped table-hover table-condensed" style="font-size: 9px; margin-left: auto; margin-right: auto;"> <thead> <tr> <th style="text-align:left;"> sample_number </th> <th style="text-align:right;"> transect </th> <th style="text-align:right;"> station </th> <th style="text-align:left;"> date </th> <th style="text-align:left;"> time </th> <th style="text-align:right;"> depth </th> <th style="text-align:left;"> level </th> <th style="text-align:right;"> latitude </th> <th style="text-align:right;"> longitude </th> <th style="text-align:right;"> picoeuks </th> <th style="text-align:right;"> nanoeuks </th> <th style="text-align:right;"> phosphates </th> <th style="text-align:right;"> nitrates </th> <th style="text-align:right;"> temperature </th> <th style="text-align:right;"> salinity </th> <th style="text-align:right;"> pico_pct </th> </tr> </thead> <tbody> <tr> <td style="text-align:left;"> 1 </td> <td style="text-align:right;"> 0 </td> <td style="text-align:right;font-weight: bold;background-color: lightyellow;"> 6 </td> <td style="text-align:left;"> 2013-10-31 </td> <td style="text-align:left;"> 5:20 </td> <td style="text-align:right;"> 45 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -23.58 </td> <td style="text-align:right;"> -41.78 </td> <td style="text-align:right;"> 7651 </td> <td style="text-align:right;"> 4845 </td> <td style="text-align:right;"> 0.47 </td> <td style="text-align:right;"> 1.07 </td> <td style="text-align:right;"> 19.7 </td> <td style="text-align:right;"> 36.3 </td> <td style="text-align:right;"> 61.22759 </td> </tr> <tr> <td style="text-align:left;"> 2 </td> <td style="text-align:right;"> 0 </td> <td style="text-align:right;font-weight: bold;background-color: lightyellow;"> 6 </td> <td style="text-align:left;"> 2013-10-31 </td> <td style="text-align:left;"> 5:20 </td> <td style="text-align:right;"> 45 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -23.58 </td> <td style="text-align:right;"> -41.78 </td> <td style="text-align:right;"> 7343 </td> <td style="text-align:right;"> 3258 </td> <td style="text-align:right;"> 0.47 </td> <td style="text-align:right;"> 1.07 </td> <td style="text-align:right;"> 19.7 </td> <td style="text-align:right;"> 36.3 </td> <td style="text-align:right;"> 69.26705 </td> </tr> <tr> <td style="text-align:left;"> 3 </td> <td style="text-align:right;"> 0 </td> <td style="text-align:right;font-weight: bold;background-color: lightyellow;"> 19 </td> <td style="text-align:left;"> 2013-11-02 </td> <td style="text-align:left;"> 13:30 </td> <td style="text-align:right;"> 5 </td> <td style="text-align:left;"> Surf </td> <td style="text-align:right;"> -25.79 </td> <td style="text-align:right;"> -40.36 </td> <td style="text-align:right;"> 1005 </td> <td style="text-align:right;"> 898 </td> <td style="text-align:right;"> 0.29 </td> <td style="text-align:right;"> 0.48 </td> <td style="text-align:right;"> 22.7 </td> <td style="text-align:right;"> 36.9 </td> <td style="text-align:right;"> 52.81135 </td> </tr> <tr> <td style="text-align:left;"> 5 </td> <td style="text-align:right;"> 0 </td> <td style="text-align:right;font-weight: bold;background-color: lightyellow;"> 21 </td> <td style="text-align:left;"> 2013-11-02 </td> <td style="text-align:left;"> 0:0 </td> <td style="text-align:right;"> 5 </td> <td style="text-align:left;"> Surf </td> <td style="text-align:right;"> -26.23 </td> <td style="text-align:right;"> -40.09 </td> <td style="text-align:right;"> 793 </td> <td style="text-align:right;"> 660 </td> <td style="text-align:right;"> 0.16 </td> <td style="text-align:right;"> 0.90 </td> <td style="text-align:right;"> 22.8 </td> <td style="text-align:right;"> 36.9 </td> <td style="text-align:right;"> 54.57674 </td> </tr> <tr> <td style="text-align:left;"> 7 </td> <td style="text-align:right;"> 0 </td> <td style="text-align:right;font-weight: bold;background-color: lightyellow;"> 26 </td> <td style="text-align:left;"> 2013-11-03 </td> <td style="text-align:left;"> 19:30 </td> <td style="text-align:right;"> 5 </td> <td style="text-align:left;"> Surf </td> <td style="text-align:right;"> -27.31 </td> <td style="text-align:right;"> -39.38 </td> <td style="text-align:right;"> 907 </td> <td style="text-align:right;"> 856 </td> <td style="text-align:right;"> 0.20 </td> <td style="text-align:right;"> 0.50 </td> <td style="text-align:right;"> 21.2 </td> <td style="text-align:right;"> 36.4 </td> <td style="text-align:right;"> 51.44640 </td> </tr> <tr> <td style="text-align:left;"> 10 </td> <td style="text-align:right;"> 1 </td> <td style="text-align:right;font-weight: bold;background-color: lightyellow;"> 81 </td> <td style="text-align:left;"> 2013-11-13 </td> <td style="text-align:left;"> 1:0 </td> <td style="text-align:right;"> 140 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -27.42 </td> <td style="text-align:right;"> -44.72 </td> <td style="text-align:right;"> 3278 </td> <td style="text-align:right;"> 1232 </td> <td style="text-align:right;"> 0.20 </td> <td style="text-align:right;"> 0.26 </td> <td style="text-align:right;"> 17.3 </td> <td style="text-align:right;"> 35.9 </td> <td style="text-align:right;"> 72.68293 </td> </tr> <tr> <td style="text-align:left;"> 9 </td> <td style="text-align:right;"> 1 </td> <td style="text-align:right;font-weight: bold;background-color: lightyellow;"> 81 </td> <td style="text-align:left;"> 2013-11-13 </td> <td style="text-align:left;"> 1:0 </td> <td style="text-align:right;"> 140 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -27.42 </td> <td style="text-align:right;"> -44.72 </td> <td style="text-align:right;"> 3181 </td> <td style="text-align:right;"> 1235 </td> <td style="text-align:right;"> 0.20 </td> <td style="text-align:right;"> 0.26 </td> <td style="text-align:right;"> 17.3 </td> <td style="text-align:right;"> 35.9 </td> <td style="text-align:right;"> 72.03351 </td> </tr> <tr> <td style="text-align:left;"> 11 </td> <td style="text-align:right;"> 1 </td> <td style="text-align:right;font-weight: bold;background-color: lightyellow;"> 85 </td> <td style="text-align:left;"> 2013-11-13 </td> <td style="text-align:left;"> 13:30 </td> <td style="text-align:right;"> 110 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -26.80 </td> <td style="text-align:right;"> -45.30 </td> <td style="text-align:right;"> 16312 </td> <td style="text-align:right;"> 1615 </td> <td style="text-align:right;"> 0.29 </td> <td style="text-align:right;"> 0.22 </td> <td style="text-align:right;"> 21.3 </td> <td style="text-align:right;"> 36.5 </td> <td style="text-align:right;"> 90.99124 </td> </tr> <tr> <td style="text-align:left;"> 13 </td> <td style="text-align:right;"> 1 </td> <td style="text-align:right;font-weight: bold;background-color: lightyellow;"> 86 </td> <td style="text-align:left;"> 2013-11-13 </td> <td style="text-align:left;"> 17:0 </td> <td style="text-align:right;"> 105 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -26.33 </td> <td style="text-align:right;"> -45.41 </td> <td style="text-align:right;"> 6366 </td> <td style="text-align:right;"> 1007 </td> <td style="text-align:right;"> 0.34 </td> <td style="text-align:right;"> 0.15 </td> <td style="text-align:right;"> 20.9 </td> <td style="text-align:right;"> 36.3 </td> <td style="text-align:right;"> 86.34206 </td> </tr> <tr> <td style="text-align:left;"> 15 </td> <td style="text-align:right;"> 1 </td> <td style="text-align:right;font-weight: bold;background-color: lightyellow;"> 87 </td> <td style="text-align:left;"> 2013-11-13 </td> <td style="text-align:left;"> 19:30 </td> <td style="text-align:right;"> 105 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -26.22 </td> <td style="text-align:right;"> -45.48 </td> <td style="text-align:right;"> 6189 </td> <td style="text-align:right;"> 622 </td> <td style="text-align:right;"> 0.47 </td> <td style="text-align:right;"> 1.51 </td> <td style="text-align:right;"> 19.5 </td> <td style="text-align:right;"> 36.1 </td> <td style="text-align:right;"> 90.86771 </td> </tr> </tbody> </table> * One station named "Bloom" could not be converted to numerical (-> NA) --- ## Summarize rows - group_by / summarize * Group by transect and station * Compute mean of the percent picoplankton ```r samples_mean <- samples %>% dplyr::group_by(transect, station) %>% dplyr::summarise(n_samples = n(), mean_pico_percent = mean(pico_pct, na.rm=TRUE)) ``` -- <table class="table table-striped table-hover table-condensed" style="font-size: 9px; margin-left: auto; margin-right: auto;"> <thead> <tr> <th style="text-align:right;"> transect </th> <th style="text-align:right;"> station </th> <th style="text-align:right;"> n_samples </th> <th style="text-align:right;"> mean_pico_percent </th> </tr> </thead> <tbody> <tr> <td style="text-align:right;"> 0 </td> <td style="text-align:right;"> 6 </td> <td style="text-align:right;font-weight: bold;background-color: lightyellow;"> 2 </td> <td style="text-align:right;font-weight: bold;background-color: lightyellow;"> 65.24732 </td> </tr> <tr> <td style="text-align:right;"> 0 </td> <td style="text-align:right;"> 19 </td> <td style="text-align:right;font-weight: bold;background-color: lightyellow;"> 1 </td> <td style="text-align:right;font-weight: bold;background-color: lightyellow;"> 52.81135 </td> </tr> <tr> <td style="text-align:right;"> 0 </td> <td style="text-align:right;"> 21 </td> <td style="text-align:right;font-weight: bold;background-color: lightyellow;"> 1 </td> <td style="text-align:right;font-weight: bold;background-color: lightyellow;"> 54.57674 </td> </tr> <tr> <td style="text-align:right;"> 0 </td> <td style="text-align:right;"> 26 </td> <td style="text-align:right;font-weight: bold;background-color: lightyellow;"> 1 </td> <td style="text-align:right;font-weight: bold;background-color: lightyellow;"> 51.44640 </td> </tr> <tr> <td style="text-align:right;"> 1 </td> <td style="text-align:right;"> 81 </td> <td style="text-align:right;font-weight: bold;background-color: lightyellow;"> 2 </td> <td style="text-align:right;font-weight: bold;background-color: lightyellow;"> 72.35822 </td> </tr> <tr> <td style="text-align:right;"> 1 </td> <td style="text-align:right;"> 85 </td> <td style="text-align:right;font-weight: bold;background-color: lightyellow;"> 1 </td> <td style="text-align:right;font-weight: bold;background-color: lightyellow;"> 90.99124 </td> </tr> <tr> <td style="text-align:right;"> 1 </td> <td style="text-align:right;"> 86 </td> <td style="text-align:right;font-weight: bold;background-color: lightyellow;"> 1 </td> <td style="text-align:right;font-weight: bold;background-color: lightyellow;"> 86.34206 </td> </tr> <tr> <td style="text-align:right;"> 1 </td> <td style="text-align:right;"> 87 </td> <td style="text-align:right;font-weight: bold;background-color: lightyellow;"> 1 </td> <td style="text-align:right;font-weight: bold;background-color: lightyellow;"> 90.86771 </td> </tr> <tr> <td style="text-align:right;"> 2 </td> <td style="text-align:right;"> 96 </td> <td style="text-align:right;font-weight: bold;background-color: lightyellow;"> 3 </td> <td style="text-align:right;font-weight: bold;background-color: lightyellow;"> 87.06651 </td> </tr> <tr> <td style="text-align:right;"> 2 </td> <td style="text-align:right;"> 98 </td> <td style="text-align:right;font-weight: bold;background-color: lightyellow;"> 3 </td> <td style="text-align:right;font-weight: bold;background-color: lightyellow;"> 75.01403 </td> </tr> </tbody> </table> --- ## Filtering rows - filter * Get only the surface samples ```r samples_surf <- samples %>% dplyr::filter(level == "Surf") ``` -- <table class="table table-striped table-hover table-condensed" style="font-size: 9px; margin-left: auto; margin-right: auto;"> <thead> <tr> <th style="text-align:left;"> sample_number </th> <th style="text-align:right;"> transect </th> <th style="text-align:right;"> station </th> <th style="text-align:left;"> date </th> <th style="text-align:left;"> time </th> <th style="text-align:right;"> depth </th> <th style="text-align:left;"> level </th> <th style="text-align:right;"> latitude </th> <th style="text-align:right;"> longitude </th> <th style="text-align:right;"> picoeuks </th> <th style="text-align:right;"> nanoeuks </th> <th style="text-align:right;"> phosphates </th> <th style="text-align:right;"> nitrates </th> <th style="text-align:right;"> temperature </th> <th style="text-align:right;"> salinity </th> <th style="text-align:right;"> pico_pct </th> </tr> </thead> <tbody> <tr> <td style="text-align:left;"> 3 </td> <td style="text-align:right;"> 0 </td> <td style="text-align:right;"> 19 </td> <td style="text-align:left;"> 2013-11-02 </td> <td style="text-align:left;"> 13:30 </td> <td style="text-align:right;"> 5 </td> <td style="text-align:left;"> Surf </td> <td style="text-align:right;"> -25.79 </td> <td style="text-align:right;"> -40.36 </td> <td style="text-align:right;"> 1005 </td> <td style="text-align:right;"> 898 </td> <td style="text-align:right;"> 0.29 </td> <td style="text-align:right;"> 0.48 </td> <td style="text-align:right;"> 22.7 </td> <td style="text-align:right;"> 36.9 </td> <td style="text-align:right;"> 52.81135 </td> </tr> <tr> <td style="text-align:left;"> 5 </td> <td style="text-align:right;"> 0 </td> <td style="text-align:right;"> 21 </td> <td style="text-align:left;"> 2013-11-02 </td> <td style="text-align:left;"> 0:0 </td> <td style="text-align:right;"> 5 </td> <td style="text-align:left;"> Surf </td> <td style="text-align:right;"> -26.23 </td> <td style="text-align:right;"> -40.09 </td> <td style="text-align:right;"> 793 </td> <td style="text-align:right;"> 660 </td> <td style="text-align:right;"> 0.16 </td> <td style="text-align:right;"> 0.90 </td> <td style="text-align:right;"> 22.8 </td> <td style="text-align:right;"> 36.9 </td> <td style="text-align:right;"> 54.57674 </td> </tr> <tr> <td style="text-align:left;"> 7 </td> <td style="text-align:right;"> 0 </td> <td style="text-align:right;"> 26 </td> <td style="text-align:left;"> 2013-11-03 </td> <td style="text-align:left;"> 19:30 </td> <td style="text-align:right;"> 5 </td> <td style="text-align:left;"> Surf </td> <td style="text-align:right;"> -27.31 </td> <td style="text-align:right;"> -39.38 </td> <td style="text-align:right;"> 907 </td> <td style="text-align:right;"> 856 </td> <td style="text-align:right;"> 0.20 </td> <td style="text-align:right;"> 0.50 </td> <td style="text-align:right;"> 21.2 </td> <td style="text-align:right;"> 36.4 </td> <td style="text-align:right;"> 51.44640 </td> </tr> <tr> <td style="text-align:left;"> 120 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:right;"> 96 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 23:50 </td> <td style="text-align:right;"> 5 </td> <td style="text-align:left;"> Surf </td> <td style="text-align:right;"> -27.39 </td> <td style="text-align:right;"> -47.82 </td> <td style="text-align:right;"> 1150 </td> <td style="text-align:right;"> 75 </td> <td style="text-align:right;"> 0.43 </td> <td style="text-align:right;"> 0.19 </td> <td style="text-align:right;"> 23.1 </td> <td style="text-align:right;"> 33.5 </td> <td style="text-align:right;"> 93.87755 </td> </tr> <tr> <td style="text-align:left;"> 125 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:right;"> 98 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 5:0 </td> <td style="text-align:right;"> 5 </td> <td style="text-align:left;"> Surf </td> <td style="text-align:right;"> -27.59 </td> <td style="text-align:right;"> -47.39 </td> <td style="text-align:right;"> 3086 </td> <td style="text-align:right;"> 1300 </td> <td style="text-align:right;"> 0.29 </td> <td style="text-align:right;"> 0.25 </td> <td style="text-align:right;"> 23.1 </td> <td style="text-align:right;"> 35.7 </td> <td style="text-align:right;"> 70.36024 </td> </tr> <tr> <td style="text-align:left;"> 140 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:right;"> 101 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 12:0 </td> <td style="text-align:right;"> 5 </td> <td style="text-align:left;"> Surf </td> <td style="text-align:right;"> -27.79 </td> <td style="text-align:right;"> -46.96 </td> <td style="text-align:right;"> 500 </td> <td style="text-align:right;"> 366 </td> <td style="text-align:right;"> 0.29 </td> <td style="text-align:right;"> 0.14 </td> <td style="text-align:right;"> 23.5 </td> <td style="text-align:right;"> 36.5 </td> <td style="text-align:right;"> 57.73672 </td> </tr> <tr> <td style="text-align:left;"> 155 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:right;"> 106 </td> <td style="text-align:left;"> 2013-11-19 </td> <td style="text-align:left;"> 2:30 </td> <td style="text-align:right;"> 5 </td> <td style="text-align:left;"> Surf </td> <td style="text-align:right;"> -28.12 </td> <td style="text-align:right;"> -46.17 </td> <td style="text-align:right;"> 355 </td> <td style="text-align:right;"> 18 </td> <td style="text-align:right;"> 0.25 </td> <td style="text-align:right;"> 0.37 </td> <td style="text-align:right;"> 23.0 </td> <td style="text-align:right;"> 36.9 </td> <td style="text-align:right;"> 95.17426 </td> </tr> <tr> <td style="text-align:left;"> 165 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:right;"> 114 </td> <td style="text-align:left;"> 2013-11-19 </td> <td style="text-align:left;"> 21:40 </td> <td style="text-align:right;"> 5 </td> <td style="text-align:left;"> Surf </td> <td style="text-align:right;"> -28.65 </td> <td style="text-align:right;"> -44.99 </td> <td style="text-align:right;"> 728 </td> <td style="text-align:right;"> 226 </td> <td style="text-align:right;"> 0.29 </td> <td style="text-align:right;"> 0.28 </td> <td style="text-align:right;"> 22.4 </td> <td style="text-align:right;"> 36.4 </td> <td style="text-align:right;"> 76.31027 </td> </tr> <tr> <td style="text-align:left;"> Trichod.1 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:right;"> </td> <td style="text-align:left;"> </td> <td style="text-align:left;"> </td> <td style="text-align:right;"> </td> <td style="text-align:left;"> Surf </td> <td style="text-align:right;"> -27.80 </td> <td style="text-align:right;"> -47.10 </td> <td style="text-align:right;"> 1002 </td> <td style="text-align:right;"> 194 </td> <td style="text-align:right;"> </td> <td style="text-align:right;"> </td> <td style="text-align:right;"> </td> <td style="text-align:right;"> </td> <td style="text-align:right;"> 83.77926 </td> </tr> <tr> <td style="text-align:left;"> Trichod.2 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:right;"> </td> <td style="text-align:left;"> </td> <td style="text-align:left;"> </td> <td style="text-align:right;"> </td> <td style="text-align:left;"> Surf </td> <td style="text-align:right;"> -27.80 </td> <td style="text-align:right;"> -47.10 </td> <td style="text-align:right;"> 744 </td> <td style="text-align:right;"> 206 </td> <td style="text-align:right;"> </td> <td style="text-align:right;"> </td> <td style="text-align:right;"> </td> <td style="text-align:right;"> </td> <td style="text-align:right;"> 78.31579 </td> </tr> </tbody> </table> * ! Use the logical operators __==__ != > >= < <= is.na() --- layout: true # Joining tables --- <img src="img/sql_inner_join.png" width="60%" style="display: block; margin: auto;" /> --- Very often you have tables that contain a common field and that you need to __join__ together. -- A common example in oceanography. After a cruise you have many tables Tables : * Stations - Station #, Longitude, Latitude * Cast (CTD) - Station #, Cast #, Depth, Temp, Sal (continuous) * Bottles - Cast #, Depth, Bottle # * Water samples - Bottle #, Sample # * Biological samples - Sample #, Analysis # You want to know the Longitude and Latitude of a given biological sample. -- Analysis # -> Sample # -> Bottle # -> Cast # -> Station # -> Long, Lat In order to join 2 tables, they must have a common field. It is called the __KEY__. For example it can be Bottle #, Station # --- ## Sequence samples (metabarcoding) * Each sample has been split into 2 fractions by sorting : pico- and nano * These separate samples have then been sequenced to determine the composition of the plankton community -- <img src="img/carbom_excel_sequences.png" width="50%" style="display: block; margin: auto;" /> --- ## Reading table with sequence samples ```r sequences <- readxl::read_excel("data/CARBOM data.xlsx", sheet = "Samples_sequencing") ``` <table class="table table-striped table-hover table-condensed" style="font-size: 9px; margin-left: auto; margin-right: auto;"> <thead> <tr> <th style="text-align:left;"> sample </th> <th style="text-align:left;"> sample_number </th> <th style="text-align:left;"> fraction </th> <th style="text-align:right;"> n_sequences </th> </tr> </thead> <tbody> <tr> <td style="text-align:left;"> X10n </td> <td style="text-align:left;background-color: lightyellow;"> 10 </td> <td style="text-align:left;"> Nano </td> <td style="text-align:right;"> 53230 </td> </tr> <tr> <td style="text-align:left;"> X10p </td> <td style="text-align:left;background-color: lightyellow;"> 10 </td> <td style="text-align:left;"> Pico </td> <td style="text-align:right;"> 47390 </td> </tr> <tr> <td style="text-align:left;"> X11n </td> <td style="text-align:left;background-color: lightyellow;"> 11 </td> <td style="text-align:left;"> Nano </td> <td style="text-align:right;"> 24007 </td> </tr> <tr> <td style="text-align:left;"> X11p </td> <td style="text-align:left;background-color: lightyellow;"> 11 </td> <td style="text-align:left;"> Pico </td> <td style="text-align:right;"> 31899 </td> </tr> <tr> <td style="text-align:left;"> X120n </td> <td style="text-align:left;background-color: lightyellow;"> 120 </td> <td style="text-align:left;"> Nano </td> <td style="text-align:right;"> 70455 </td> </tr> </tbody> </table> --- * Table sequences <table class="table table-striped table-hover table-condensed" style="font-size: 9px; margin-left: auto; margin-right: auto;"> <thead> <tr> <th style="text-align:left;"> sample </th> <th style="text-align:left;"> sample_number </th> <th style="text-align:left;"> fraction </th> <th style="text-align:right;"> n_sequences </th> </tr> </thead> <tbody> <tr> <td style="text-align:left;"> X10n </td> <td style="text-align:left;background-color: lightyellow;"> 10 </td> <td style="text-align:left;"> Nano </td> <td style="text-align:right;"> 53230 </td> </tr> <tr> <td style="text-align:left;"> X10p </td> <td style="text-align:left;background-color: lightyellow;"> 10 </td> <td style="text-align:left;"> Pico </td> <td style="text-align:right;"> 47390 </td> </tr> <tr> <td style="text-align:left;"> X11n </td> <td style="text-align:left;background-color: lightyellow;"> 11 </td> <td style="text-align:left;"> Nano </td> <td style="text-align:right;"> 24007 </td> </tr> <tr> <td style="text-align:left;"> X11p </td> <td style="text-align:left;background-color: lightyellow;"> 11 </td> <td style="text-align:left;"> Pico </td> <td style="text-align:right;"> 31899 </td> </tr> <tr> <td style="text-align:left;"> X120n </td> <td style="text-align:left;background-color: lightyellow;"> 120 </td> <td style="text-align:left;"> Nano </td> <td style="text-align:right;"> 70455 </td> </tr> </tbody> </table> * Table samples <table class="table table-striped table-hover table-condensed" style="font-size: 9px; margin-left: auto; margin-right: auto;"> <thead> <tr> <th style="text-align:left;"> sample_number </th> <th style="text-align:right;"> transect </th> <th style="text-align:left;"> station </th> <th style="text-align:left;"> date </th> <th style="text-align:left;"> time </th> <th style="text-align:right;"> depth </th> <th style="text-align:left;"> level </th> <th style="text-align:right;"> latitude </th> <th style="text-align:right;"> longitude </th> <th style="text-align:right;"> picoeuks </th> <th style="text-align:right;"> nanoeuks </th> </tr> </thead> <tbody> <tr> <td style="text-align:left;background-color: lightyellow;"> 10 </td> <td style="text-align:right;"> 1 </td> <td style="text-align:left;"> 81 </td> <td style="text-align:left;"> 2013-11-13 </td> <td style="text-align:left;"> 1:0 </td> <td style="text-align:right;"> 140 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -27.42 </td> <td style="text-align:right;"> -44.72 </td> <td style="text-align:right;"> 3278 </td> <td style="text-align:right;"> 1232 </td> </tr> <tr> <td style="text-align:left;background-color: lightyellow;"> 11 </td> <td style="text-align:right;"> 1 </td> <td style="text-align:left;"> 85 </td> <td style="text-align:left;"> 2013-11-13 </td> <td style="text-align:left;"> 13:30 </td> <td style="text-align:right;"> 110 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -26.80 </td> <td style="text-align:right;"> -45.30 </td> <td style="text-align:right;"> 16312 </td> <td style="text-align:right;"> 1615 </td> </tr> <tr> <td style="text-align:left;background-color: lightyellow;"> 120 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 96 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 23:50 </td> <td style="text-align:right;"> 5 </td> <td style="text-align:left;"> Surf </td> <td style="text-align:right;"> -27.39 </td> <td style="text-align:right;"> -47.82 </td> <td style="text-align:right;"> 1150 </td> <td style="text-align:right;"> 75 </td> </tr> <tr> <td style="text-align:left;background-color: lightyellow;"> 121 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 96 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 23:50 </td> <td style="text-align:right;"> 30 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -27.39 </td> <td style="text-align:right;"> -47.82 </td> <td style="text-align:right;"> 1737 </td> <td style="text-align:right;"> 218 </td> </tr> <tr> <td style="text-align:left;background-color: lightyellow;"> 122 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 96 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 23:50 </td> <td style="text-align:right;"> 50 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -27.39 </td> <td style="text-align:right;"> -47.82 </td> <td style="text-align:right;"> 853 </td> <td style="text-align:right;"> 234 </td> </tr> </tbody> </table> * The two tables have a common field called __sample_number__ (KEY). --- ## Joining sequence and sample tables. ```r sequences_join <- left_join(sequences, samples_select) ``` -- <table class="table table-striped table-hover table-condensed" style="font-size: 9px; margin-left: auto; margin-right: auto;"> <thead> <tr> <th style="text-align:left;"> sample </th> <th style="text-align:left;"> sample_number </th> <th style="text-align:left;"> fraction </th> <th style="text-align:right;"> n_sequences </th> <th style="text-align:right;"> transect </th> <th style="text-align:left;"> station </th> <th style="text-align:left;"> date </th> <th style="text-align:left;"> time </th> <th style="text-align:right;"> depth </th> <th style="text-align:left;"> level </th> <th style="text-align:right;"> latitude </th> <th style="text-align:right;"> longitude </th> <th style="text-align:right;"> picoeuks </th> <th style="text-align:right;"> nanoeuks </th> </tr> </thead> <tbody> <tr> <td style="text-align:left;"> X10n </td> <td style="text-align:left;background-color: lightyellow;"> 10 </td> <td style="text-align:left;"> Nano </td> <td style="text-align:right;"> 53230 </td> <td style="text-align:right;"> 1 </td> <td style="text-align:left;"> 81 </td> <td style="text-align:left;"> 2013-11-13 </td> <td style="text-align:left;"> 1:0 </td> <td style="text-align:right;"> 140 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -27.42 </td> <td style="text-align:right;"> -44.72 </td> <td style="text-align:right;"> 3278 </td> <td style="text-align:right;"> 1232 </td> </tr> <tr> <td style="text-align:left;"> X10p </td> <td style="text-align:left;background-color: lightyellow;"> 10 </td> <td style="text-align:left;"> Pico </td> <td style="text-align:right;"> 47390 </td> <td style="text-align:right;"> 1 </td> <td style="text-align:left;"> 81 </td> <td style="text-align:left;"> 2013-11-13 </td> <td style="text-align:left;"> 1:0 </td> <td style="text-align:right;"> 140 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -27.42 </td> <td style="text-align:right;"> -44.72 </td> <td style="text-align:right;"> 3278 </td> <td style="text-align:right;"> 1232 </td> </tr> <tr> <td style="text-align:left;"> X11n </td> <td style="text-align:left;background-color: lightyellow;"> 11 </td> <td style="text-align:left;"> Nano </td> <td style="text-align:right;"> 24007 </td> <td style="text-align:right;"> 1 </td> <td style="text-align:left;"> 85 </td> <td style="text-align:left;"> 2013-11-13 </td> <td style="text-align:left;"> 13:30 </td> <td style="text-align:right;"> 110 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -26.80 </td> <td style="text-align:right;"> -45.30 </td> <td style="text-align:right;"> 16312 </td> <td style="text-align:right;"> 1615 </td> </tr> <tr> <td style="text-align:left;"> X11p </td> <td style="text-align:left;background-color: lightyellow;"> 11 </td> <td style="text-align:left;"> Pico </td> <td style="text-align:right;"> 31899 </td> <td style="text-align:right;"> 1 </td> <td style="text-align:left;"> 85 </td> <td style="text-align:left;"> 2013-11-13 </td> <td style="text-align:left;"> 13:30 </td> <td style="text-align:right;"> 110 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -26.80 </td> <td style="text-align:right;"> -45.30 </td> <td style="text-align:right;"> 16312 </td> <td style="text-align:right;"> 1615 </td> </tr> <tr> <td style="text-align:left;"> X120n </td> <td style="text-align:left;background-color: lightyellow;"> 120 </td> <td style="text-align:left;"> Nano </td> <td style="text-align:right;"> 70455 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 96 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 23:50 </td> <td style="text-align:right;"> 5 </td> <td style="text-align:left;"> Surf </td> <td style="text-align:right;"> -27.39 </td> <td style="text-align:right;"> -47.82 </td> <td style="text-align:right;"> 1150 </td> <td style="text-align:right;"> 75 </td> </tr> <tr> <td style="text-align:left;"> X120p </td> <td style="text-align:left;background-color: lightyellow;"> 120 </td> <td style="text-align:left;"> Pico </td> <td style="text-align:right;"> 76182 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 96 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 23:50 </td> <td style="text-align:right;"> 5 </td> <td style="text-align:left;"> Surf </td> <td style="text-align:right;"> -27.39 </td> <td style="text-align:right;"> -47.82 </td> <td style="text-align:right;"> 1150 </td> <td style="text-align:right;"> 75 </td> </tr> <tr> <td style="text-align:left;"> X121n </td> <td style="text-align:left;background-color: lightyellow;"> 121 </td> <td style="text-align:left;"> Nano </td> <td style="text-align:right;"> 52401 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 96 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 23:50 </td> <td style="text-align:right;"> 30 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -27.39 </td> <td style="text-align:right;"> -47.82 </td> <td style="text-align:right;"> 1737 </td> <td style="text-align:right;"> 218 </td> </tr> <tr> <td style="text-align:left;"> X121p </td> <td style="text-align:left;background-color: lightyellow;"> 121 </td> <td style="text-align:left;"> Pico </td> <td style="text-align:right;"> 71785 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 96 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 23:50 </td> <td style="text-align:right;"> 30 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -27.39 </td> <td style="text-align:right;"> -47.82 </td> <td style="text-align:right;"> 1737 </td> <td style="text-align:right;"> 218 </td> </tr> <tr> <td style="text-align:left;"> X122n </td> <td style="text-align:left;background-color: lightyellow;"> 122 </td> <td style="text-align:left;"> Nano </td> <td style="text-align:right;"> 78740 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 96 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 23:50 </td> <td style="text-align:right;"> 50 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -27.39 </td> <td style="text-align:right;"> -47.82 </td> <td style="text-align:right;"> 853 </td> <td style="text-align:right;"> 234 </td> </tr> <tr> <td style="text-align:left;"> X122p </td> <td style="text-align:left;background-color: lightyellow;"> 122 </td> <td style="text-align:left;"> Pico </td> <td style="text-align:right;"> 37364 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 96 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 23:50 </td> <td style="text-align:right;"> 50 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -27.39 </td> <td style="text-align:right;"> -47.82 </td> <td style="text-align:right;"> 853 </td> <td style="text-align:right;"> 234 </td> </tr> </tbody> </table> --- ## Joining columns with different names * If the __KEY__ do not have the same name in the two tables it is possible to specify the name of the two columns used for joining. ```r sequences <- sequences %>% rename(sample_code = sample_number) ``` -- <table class="table table-striped table-hover table-condensed" style="font-size: 9px; margin-left: auto; margin-right: auto;"> <thead> <tr> <th style="text-align:left;"> sample </th> <th style="text-align:left;"> sample_code </th> <th style="text-align:left;"> fraction </th> <th style="text-align:right;"> n_sequences </th> </tr> </thead> <tbody> <tr> <td style="text-align:left;"> X10n </td> <td style="text-align:left;background-color: lightyellow;"> 10 </td> <td style="text-align:left;"> Nano </td> <td style="text-align:right;"> 53230 </td> </tr> <tr> <td style="text-align:left;"> X10p </td> <td style="text-align:left;background-color: lightyellow;"> 10 </td> <td style="text-align:left;"> Pico </td> <td style="text-align:right;"> 47390 </td> </tr> <tr> <td style="text-align:left;"> X11n </td> <td style="text-align:left;background-color: lightyellow;"> 11 </td> <td style="text-align:left;"> Nano </td> <td style="text-align:right;"> 24007 </td> </tr> <tr> <td style="text-align:left;"> X11p </td> <td style="text-align:left;background-color: lightyellow;"> 11 </td> <td style="text-align:left;"> Pico </td> <td style="text-align:right;"> 31899 </td> </tr> <tr> <td style="text-align:left;"> X120n </td> <td style="text-align:left;background-color: lightyellow;"> 120 </td> <td style="text-align:left;"> Nano </td> <td style="text-align:right;"> 70455 </td> </tr> <tr> <td style="text-align:left;"> X120p </td> <td style="text-align:left;background-color: lightyellow;"> 120 </td> <td style="text-align:left;"> Pico </td> <td style="text-align:right;"> 76182 </td> </tr> <tr> <td style="text-align:left;"> X121n </td> <td style="text-align:left;background-color: lightyellow;"> 121 </td> <td style="text-align:left;"> Nano </td> <td style="text-align:right;"> 52401 </td> </tr> <tr> <td style="text-align:left;"> X121p </td> <td style="text-align:left;background-color: lightyellow;"> 121 </td> <td style="text-align:left;"> Pico </td> <td style="text-align:right;"> 71785 </td> </tr> <tr> <td style="text-align:left;"> X122n </td> <td style="text-align:left;background-color: lightyellow;"> 122 </td> <td style="text-align:left;"> Nano </td> <td style="text-align:right;"> 78740 </td> </tr> <tr> <td style="text-align:left;"> X122p </td> <td style="text-align:left;background-color: lightyellow;"> 122 </td> <td style="text-align:left;"> Pico </td> <td style="text-align:right;"> 37364 </td> </tr> </tbody> </table> --- ## Joining columns with different names ```r sequences_join <- left_join(sequences, samples_select, by= c("sample_code" = "sample_number")) ``` -- <table class="table table-striped table-hover table-condensed" style="font-size: 9px; margin-left: auto; margin-right: auto;"> <thead> <tr> <th style="text-align:left;"> sample </th> <th style="text-align:left;"> sample_code </th> <th style="text-align:left;"> fraction </th> <th style="text-align:right;"> n_sequences </th> <th style="text-align:right;"> transect </th> <th style="text-align:left;"> station </th> <th style="text-align:left;"> date </th> <th style="text-align:left;"> time </th> <th style="text-align:right;"> depth </th> <th style="text-align:left;"> level </th> <th style="text-align:right;"> latitude </th> <th style="text-align:right;"> longitude </th> <th style="text-align:right;"> picoeuks </th> <th style="text-align:right;"> nanoeuks </th> </tr> </thead> <tbody> <tr> <td style="text-align:left;"> X10n </td> <td style="text-align:left;background-color: lightyellow;"> 10 </td> <td style="text-align:left;"> Nano </td> <td style="text-align:right;"> 53230 </td> <td style="text-align:right;"> 1 </td> <td style="text-align:left;"> 81 </td> <td style="text-align:left;"> 2013-11-13 </td> <td style="text-align:left;"> 1:0 </td> <td style="text-align:right;"> 140 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -27.42 </td> <td style="text-align:right;"> -44.72 </td> <td style="text-align:right;"> 3278 </td> <td style="text-align:right;"> 1232 </td> </tr> <tr> <td style="text-align:left;"> X10p </td> <td style="text-align:left;background-color: lightyellow;"> 10 </td> <td style="text-align:left;"> Pico </td> <td style="text-align:right;"> 47390 </td> <td style="text-align:right;"> 1 </td> <td style="text-align:left;"> 81 </td> <td style="text-align:left;"> 2013-11-13 </td> <td style="text-align:left;"> 1:0 </td> <td style="text-align:right;"> 140 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -27.42 </td> <td style="text-align:right;"> -44.72 </td> <td style="text-align:right;"> 3278 </td> <td style="text-align:right;"> 1232 </td> </tr> <tr> <td style="text-align:left;"> X11n </td> <td style="text-align:left;background-color: lightyellow;"> 11 </td> <td style="text-align:left;"> Nano </td> <td style="text-align:right;"> 24007 </td> <td style="text-align:right;"> 1 </td> <td style="text-align:left;"> 85 </td> <td style="text-align:left;"> 2013-11-13 </td> <td style="text-align:left;"> 13:30 </td> <td style="text-align:right;"> 110 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -26.80 </td> <td style="text-align:right;"> -45.30 </td> <td style="text-align:right;"> 16312 </td> <td style="text-align:right;"> 1615 </td> </tr> <tr> <td style="text-align:left;"> X11p </td> <td style="text-align:left;background-color: lightyellow;"> 11 </td> <td style="text-align:left;"> Pico </td> <td style="text-align:right;"> 31899 </td> <td style="text-align:right;"> 1 </td> <td style="text-align:left;"> 85 </td> <td style="text-align:left;"> 2013-11-13 </td> <td style="text-align:left;"> 13:30 </td> <td style="text-align:right;"> 110 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -26.80 </td> <td style="text-align:right;"> -45.30 </td> <td style="text-align:right;"> 16312 </td> <td style="text-align:right;"> 1615 </td> </tr> <tr> <td style="text-align:left;"> X120n </td> <td style="text-align:left;background-color: lightyellow;"> 120 </td> <td style="text-align:left;"> Nano </td> <td style="text-align:right;"> 70455 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 96 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 23:50 </td> <td style="text-align:right;"> 5 </td> <td style="text-align:left;"> Surf </td> <td style="text-align:right;"> -27.39 </td> <td style="text-align:right;"> -47.82 </td> <td style="text-align:right;"> 1150 </td> <td style="text-align:right;"> 75 </td> </tr> <tr> <td style="text-align:left;"> X120p </td> <td style="text-align:left;background-color: lightyellow;"> 120 </td> <td style="text-align:left;"> Pico </td> <td style="text-align:right;"> 76182 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 96 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 23:50 </td> <td style="text-align:right;"> 5 </td> <td style="text-align:left;"> Surf </td> <td style="text-align:right;"> -27.39 </td> <td style="text-align:right;"> -47.82 </td> <td style="text-align:right;"> 1150 </td> <td style="text-align:right;"> 75 </td> </tr> <tr> <td style="text-align:left;"> X121n </td> <td style="text-align:left;background-color: lightyellow;"> 121 </td> <td style="text-align:left;"> Nano </td> <td style="text-align:right;"> 52401 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 96 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 23:50 </td> <td style="text-align:right;"> 30 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -27.39 </td> <td style="text-align:right;"> -47.82 </td> <td style="text-align:right;"> 1737 </td> <td style="text-align:right;"> 218 </td> </tr> <tr> <td style="text-align:left;"> X121p </td> <td style="text-align:left;background-color: lightyellow;"> 121 </td> <td style="text-align:left;"> Pico </td> <td style="text-align:right;"> 71785 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 96 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 23:50 </td> <td style="text-align:right;"> 30 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -27.39 </td> <td style="text-align:right;"> -47.82 </td> <td style="text-align:right;"> 1737 </td> <td style="text-align:right;"> 218 </td> </tr> <tr> <td style="text-align:left;"> X122n </td> <td style="text-align:left;background-color: lightyellow;"> 122 </td> <td style="text-align:left;"> Nano </td> <td style="text-align:right;"> 78740 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 96 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 23:50 </td> <td style="text-align:right;"> 50 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -27.39 </td> <td style="text-align:right;"> -47.82 </td> <td style="text-align:right;"> 853 </td> <td style="text-align:right;"> 234 </td> </tr> <tr> <td style="text-align:left;"> X122p </td> <td style="text-align:left;background-color: lightyellow;"> 122 </td> <td style="text-align:left;"> Pico </td> <td style="text-align:right;"> 37364 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 96 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 23:50 </td> <td style="text-align:right;"> 50 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -27.39 </td> <td style="text-align:right;"> -47.82 </td> <td style="text-align:right;"> 853 </td> <td style="text-align:right;"> 234 </td> </tr> </tbody> </table> --- ## Joining with missing data * Let us remove some samples from the sample table ```r samples_select <- samples_select %>% filter(sample_number != "10") ``` -- <table class="table table-striped table-hover table-condensed" style="font-size: 9px; margin-left: auto; margin-right: auto;"> <thead> <tr> <th style="text-align:left;"> sample_number </th> <th style="text-align:right;"> transect </th> <th style="text-align:left;"> station </th> <th style="text-align:left;"> date </th> <th style="text-align:left;"> time </th> <th style="text-align:right;"> depth </th> <th style="text-align:left;"> level </th> <th style="text-align:right;"> latitude </th> <th style="text-align:right;"> longitude </th> <th style="text-align:right;"> picoeuks </th> <th style="text-align:right;"> nanoeuks </th> </tr> </thead> <tbody> <tr> <td style="text-align:left;"> 11 </td> <td style="text-align:right;"> 1 </td> <td style="text-align:left;"> 85 </td> <td style="text-align:left;"> 2013-11-13 </td> <td style="text-align:left;"> 13:30 </td> <td style="text-align:right;"> 110 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -26.80 </td> <td style="text-align:right;"> -45.30 </td> <td style="text-align:right;"> 16312 </td> <td style="text-align:right;"> 1615 </td> </tr> <tr> <td style="text-align:left;"> 120 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 96 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 23:50 </td> <td style="text-align:right;"> 5 </td> <td style="text-align:left;"> Surf </td> <td style="text-align:right;"> -27.39 </td> <td style="text-align:right;"> -47.82 </td> <td style="text-align:right;"> 1150 </td> <td style="text-align:right;"> 75 </td> </tr> <tr> <td style="text-align:left;"> 121 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 96 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 23:50 </td> <td style="text-align:right;"> 30 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -27.39 </td> <td style="text-align:right;"> -47.82 </td> <td style="text-align:right;"> 1737 </td> <td style="text-align:right;"> 218 </td> </tr> <tr> <td style="text-align:left;"> 122 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 96 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 23:50 </td> <td style="text-align:right;"> 50 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -27.39 </td> <td style="text-align:right;"> -47.82 </td> <td style="text-align:right;"> 853 </td> <td style="text-align:right;"> 234 </td> </tr> <tr> <td style="text-align:left;"> 125 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 98 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 5:0 </td> <td style="text-align:right;"> 5 </td> <td style="text-align:left;"> Surf </td> <td style="text-align:right;"> -27.59 </td> <td style="text-align:right;"> -47.39 </td> <td style="text-align:right;"> 3086 </td> <td style="text-align:right;"> 1300 </td> </tr> <tr> <td style="text-align:left;"> 126 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 98 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 5:0 </td> <td style="text-align:right;"> 50 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -27.59 </td> <td style="text-align:right;"> -47.39 </td> <td style="text-align:right;"> 1217 </td> <td style="text-align:right;"> 782 </td> </tr> <tr> <td style="text-align:left;"> 127 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 98 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 5:0 </td> <td style="text-align:right;"> 85 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -27.59 </td> <td style="text-align:right;"> -47.39 </td> <td style="text-align:right;"> 3420 </td> <td style="text-align:right;"> 226 </td> </tr> <tr> <td style="text-align:left;"> 13 </td> <td style="text-align:right;"> 1 </td> <td style="text-align:left;"> 86 </td> <td style="text-align:left;"> 2013-11-13 </td> <td style="text-align:left;"> 17:0 </td> <td style="text-align:right;"> 105 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -26.33 </td> <td style="text-align:right;"> -45.41 </td> <td style="text-align:right;"> 6366 </td> <td style="text-align:right;"> 1007 </td> </tr> <tr> <td style="text-align:left;"> 140 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 101 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 12:0 </td> <td style="text-align:right;"> 5 </td> <td style="text-align:left;"> Surf </td> <td style="text-align:right;"> -27.79 </td> <td style="text-align:right;"> -46.96 </td> <td style="text-align:right;"> 500 </td> <td style="text-align:right;"> 366 </td> </tr> <tr> <td style="text-align:left;"> 141 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 101 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 12:0 </td> <td style="text-align:right;"> 60 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -27.79 </td> <td style="text-align:right;"> -46.96 </td> <td style="text-align:right;"> 1046 </td> <td style="text-align:right;"> 485 </td> </tr> </tbody> </table> --- ## Joining with missing data ```r sequences_join <- left_join(sequences, samples_select, by= c("sample_code" = "sample_number")) ``` -- <table class="table table-striped table-hover table-condensed" style="font-size: 9px; margin-left: auto; margin-right: auto;"> <thead> <tr> <th style="text-align:left;"> sample </th> <th style="text-align:left;"> sample_code </th> <th style="text-align:left;"> fraction </th> <th style="text-align:right;"> n_sequences </th> <th style="text-align:right;"> transect </th> <th style="text-align:left;"> station </th> <th style="text-align:left;"> date </th> <th style="text-align:left;"> time </th> <th style="text-align:right;"> depth </th> <th style="text-align:left;"> level </th> <th style="text-align:right;"> latitude </th> <th style="text-align:right;"> longitude </th> <th style="text-align:right;"> picoeuks </th> <th style="text-align:right;"> nanoeuks </th> </tr> </thead> <tbody> <tr> <td style="text-align:left;"> X10n </td> <td style="text-align:left;"> 10 </td> <td style="text-align:left;"> Nano </td> <td style="text-align:right;"> 53230 </td> <td style="text-align:right;"> </td> <td style="text-align:left;"> </td> <td style="text-align:left;"> </td> <td style="text-align:left;"> </td> <td style="text-align:right;"> </td> <td style="text-align:left;"> </td> <td style="text-align:right;"> </td> <td style="text-align:right;"> </td> <td style="text-align:right;"> </td> <td style="text-align:right;"> </td> </tr> <tr> <td style="text-align:left;"> X10p </td> <td style="text-align:left;"> 10 </td> <td style="text-align:left;"> Pico </td> <td style="text-align:right;"> 47390 </td> <td style="text-align:right;"> </td> <td style="text-align:left;"> </td> <td style="text-align:left;"> </td> <td style="text-align:left;"> </td> <td style="text-align:right;"> </td> <td style="text-align:left;"> </td> <td style="text-align:right;"> </td> <td style="text-align:right;"> </td> <td style="text-align:right;"> </td> <td style="text-align:right;"> </td> </tr> <tr> <td style="text-align:left;"> X11n </td> <td style="text-align:left;"> 11 </td> <td style="text-align:left;"> Nano </td> <td style="text-align:right;"> 24007 </td> <td style="text-align:right;"> 1 </td> <td style="text-align:left;"> 85 </td> <td style="text-align:left;"> 2013-11-13 </td> <td style="text-align:left;"> 13:30 </td> <td style="text-align:right;"> 110 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -26.80 </td> <td style="text-align:right;"> -45.30 </td> <td style="text-align:right;"> 16312 </td> <td style="text-align:right;"> 1615 </td> </tr> <tr> <td style="text-align:left;"> X11p </td> <td style="text-align:left;"> 11 </td> <td style="text-align:left;"> Pico </td> <td style="text-align:right;"> 31899 </td> <td style="text-align:right;"> 1 </td> <td style="text-align:left;"> 85 </td> <td style="text-align:left;"> 2013-11-13 </td> <td style="text-align:left;"> 13:30 </td> <td style="text-align:right;"> 110 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -26.80 </td> <td style="text-align:right;"> -45.30 </td> <td style="text-align:right;"> 16312 </td> <td style="text-align:right;"> 1615 </td> </tr> <tr> <td style="text-align:left;"> X120n </td> <td style="text-align:left;"> 120 </td> <td style="text-align:left;"> Nano </td> <td style="text-align:right;"> 70455 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 96 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 23:50 </td> <td style="text-align:right;"> 5 </td> <td style="text-align:left;"> Surf </td> <td style="text-align:right;"> -27.39 </td> <td style="text-align:right;"> -47.82 </td> <td style="text-align:right;"> 1150 </td> <td style="text-align:right;"> 75 </td> </tr> <tr> <td style="text-align:left;"> X120p </td> <td style="text-align:left;"> 120 </td> <td style="text-align:left;"> Pico </td> <td style="text-align:right;"> 76182 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 96 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 23:50 </td> <td style="text-align:right;"> 5 </td> <td style="text-align:left;"> Surf </td> <td style="text-align:right;"> -27.39 </td> <td style="text-align:right;"> -47.82 </td> <td style="text-align:right;"> 1150 </td> <td style="text-align:right;"> 75 </td> </tr> </tbody> </table> .student[ * What happened ? ] --- layout: true # Wide vs long tables --- <img src="img/tidyr.jpg" width="70%" style="display: block; margin: auto;" /> @allison_horst --- ## Go from wide to long - gather <img src="img/gathering.png" width="100%" style="display: block; margin: auto;" /> * This is very useful for statistical and plotting purposes --- ## Go from wide to long - gather ```r samples_long <- samples_select %>% tidyr::gather(key="population", value="cell_ml", picoeuks, nanoeuks) ``` -- <table class="table table-striped table-hover table-condensed" style="font-size: 9px; margin-left: auto; margin-right: auto;"> <thead> <tr> <th style="text-align:left;"> sample_number </th> <th style="text-align:right;"> transect </th> <th style="text-align:left;"> station </th> <th style="text-align:left;"> date </th> <th style="text-align:left;"> time </th> <th style="text-align:right;"> depth </th> <th style="text-align:left;"> level </th> <th style="text-align:right;"> latitude </th> <th style="text-align:right;"> longitude </th> <th style="text-align:left;"> population </th> <th style="text-align:right;"> cell_ml </th> </tr> </thead> <tbody> <tr> <td style="text-align:left;"> 11 </td> <td style="text-align:right;"> 1 </td> <td style="text-align:left;"> 85 </td> <td style="text-align:left;"> 2013-11-13 </td> <td style="text-align:left;"> 13:30 </td> <td style="text-align:right;"> 110 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -26.80 </td> <td style="text-align:right;"> -45.30 </td> <td style="text-align:left;font-weight: bold;background-color: lightyellow;"> picoeuks </td> <td style="text-align:right;font-weight: bold;background-color: lightyellow;"> 16312 </td> </tr> <tr> <td style="text-align:left;"> 120 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 96 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 23:50 </td> <td style="text-align:right;"> 5 </td> <td style="text-align:left;"> Surf </td> <td style="text-align:right;"> -27.39 </td> <td style="text-align:right;"> -47.82 </td> <td style="text-align:left;font-weight: bold;background-color: lightyellow;"> picoeuks </td> <td style="text-align:right;font-weight: bold;background-color: lightyellow;"> 1150 </td> </tr> <tr> <td style="text-align:left;"> 121 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 96 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 23:50 </td> <td style="text-align:right;"> 30 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -27.39 </td> <td style="text-align:right;"> -47.82 </td> <td style="text-align:left;font-weight: bold;background-color: lightyellow;"> picoeuks </td> <td style="text-align:right;font-weight: bold;background-color: lightyellow;"> 1737 </td> </tr> <tr> <td style="text-align:left;"> 122 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 96 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 23:50 </td> <td style="text-align:right;"> 50 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -27.39 </td> <td style="text-align:right;"> -47.82 </td> <td style="text-align:left;font-weight: bold;background-color: lightyellow;"> picoeuks </td> <td style="text-align:right;font-weight: bold;background-color: lightyellow;"> 853 </td> </tr> <tr> <td style="text-align:left;"> 125 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 98 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 5:0 </td> <td style="text-align:right;"> 5 </td> <td style="text-align:left;"> Surf </td> <td style="text-align:right;"> -27.59 </td> <td style="text-align:right;"> -47.39 </td> <td style="text-align:left;font-weight: bold;background-color: lightyellow;"> picoeuks </td> <td style="text-align:right;font-weight: bold;background-color: lightyellow;"> 3086 </td> </tr> <tr> <td style="text-align:left;"> 126 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 98 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 5:0 </td> <td style="text-align:right;"> 50 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -27.59 </td> <td style="text-align:right;"> -47.39 </td> <td style="text-align:left;font-weight: bold;background-color: lightyellow;"> picoeuks </td> <td style="text-align:right;font-weight: bold;background-color: lightyellow;"> 1217 </td> </tr> <tr> <td style="text-align:left;"> 127 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 98 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 5:0 </td> <td style="text-align:right;"> 85 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -27.59 </td> <td style="text-align:right;"> -47.39 </td> <td style="text-align:left;font-weight: bold;background-color: lightyellow;"> picoeuks </td> <td style="text-align:right;font-weight: bold;background-color: lightyellow;"> 3420 </td> </tr> <tr> <td style="text-align:left;"> 13 </td> <td style="text-align:right;"> 1 </td> <td style="text-align:left;"> 86 </td> <td style="text-align:left;"> 2013-11-13 </td> <td style="text-align:left;"> 17:0 </td> <td style="text-align:right;"> 105 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -26.33 </td> <td style="text-align:right;"> -45.41 </td> <td style="text-align:left;font-weight: bold;background-color: lightyellow;"> picoeuks </td> <td style="text-align:right;font-weight: bold;background-color: lightyellow;"> 6366 </td> </tr> <tr> <td style="text-align:left;"> 140 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 101 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 12:0 </td> <td style="text-align:right;"> 5 </td> <td style="text-align:left;"> Surf </td> <td style="text-align:right;"> -27.79 </td> <td style="text-align:right;"> -46.96 </td> <td style="text-align:left;font-weight: bold;background-color: lightyellow;"> picoeuks </td> <td style="text-align:right;font-weight: bold;background-color: lightyellow;"> 500 </td> </tr> <tr> <td style="text-align:left;"> 141 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 101 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 12:0 </td> <td style="text-align:right;"> 60 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -27.79 </td> <td style="text-align:right;"> -46.96 </td> <td style="text-align:left;font-weight: bold;background-color: lightyellow;"> picoeuks </td> <td style="text-align:right;font-weight: bold;background-color: lightyellow;"> 1046 </td> </tr> </tbody> </table> --- ## Go from long to wide - spread <img src="img/spreading.png" width="80%" style="display: block; margin: auto;" /> --- ## Go from long to wide - spread ```r samples_wide <- samples_long %>% tidyr::spread(key="population", value="cell_ml") ``` -- <table class="table table-striped table-hover table-condensed" style="font-size: 9px; margin-left: auto; margin-right: auto;"> <thead> <tr> <th style="text-align:left;"> sample_number </th> <th style="text-align:right;"> transect </th> <th style="text-align:left;"> station </th> <th style="text-align:left;"> date </th> <th style="text-align:left;"> time </th> <th style="text-align:right;"> depth </th> <th style="text-align:left;"> level </th> <th style="text-align:right;"> latitude </th> <th style="text-align:right;"> longitude </th> <th style="text-align:right;"> nanoeuks </th> <th style="text-align:right;"> picoeuks </th> </tr> </thead> <tbody> <tr> <td style="text-align:left;"> 1 </td> <td style="text-align:right;"> 0 </td> <td style="text-align:left;"> 6 </td> <td style="text-align:left;"> 2013-10-31 </td> <td style="text-align:left;"> 5:20 </td> <td style="text-align:right;"> 45 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -23.58 </td> <td style="text-align:right;"> -41.78 </td> <td style="text-align:right;font-weight: bold;background-color: lightyellow;"> 4845 </td> <td style="text-align:right;font-weight: bold;background-color: lightyellow;"> 7651 </td> </tr> <tr> <td style="text-align:left;"> 11 </td> <td style="text-align:right;"> 1 </td> <td style="text-align:left;"> 85 </td> <td style="text-align:left;"> 2013-11-13 </td> <td style="text-align:left;"> 13:30 </td> <td style="text-align:right;"> 110 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -26.80 </td> <td style="text-align:right;"> -45.30 </td> <td style="text-align:right;font-weight: bold;background-color: lightyellow;"> 1615 </td> <td style="text-align:right;font-weight: bold;background-color: lightyellow;"> 16312 </td> </tr> <tr> <td style="text-align:left;"> 120 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 96 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 23:50 </td> <td style="text-align:right;"> 5 </td> <td style="text-align:left;"> Surf </td> <td style="text-align:right;"> -27.39 </td> <td style="text-align:right;"> -47.82 </td> <td style="text-align:right;font-weight: bold;background-color: lightyellow;"> 75 </td> <td style="text-align:right;font-weight: bold;background-color: lightyellow;"> 1150 </td> </tr> <tr> <td style="text-align:left;"> 121 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 96 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 23:50 </td> <td style="text-align:right;"> 30 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -27.39 </td> <td style="text-align:right;"> -47.82 </td> <td style="text-align:right;font-weight: bold;background-color: lightyellow;"> 218 </td> <td style="text-align:right;font-weight: bold;background-color: lightyellow;"> 1737 </td> </tr> <tr> <td style="text-align:left;"> 122 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 96 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 23:50 </td> <td style="text-align:right;"> 50 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -27.39 </td> <td style="text-align:right;"> -47.82 </td> <td style="text-align:right;font-weight: bold;background-color: lightyellow;"> 234 </td> <td style="text-align:right;font-weight: bold;background-color: lightyellow;"> 853 </td> </tr> <tr> <td style="text-align:left;"> 125 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 98 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 5:0 </td> <td style="text-align:right;"> 5 </td> <td style="text-align:left;"> Surf </td> <td style="text-align:right;"> -27.59 </td> <td style="text-align:right;"> -47.39 </td> <td style="text-align:right;font-weight: bold;background-color: lightyellow;"> 1300 </td> <td style="text-align:right;font-weight: bold;background-color: lightyellow;"> 3086 </td> </tr> <tr> <td style="text-align:left;"> 126 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 98 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 5:0 </td> <td style="text-align:right;"> 50 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -27.59 </td> <td style="text-align:right;"> -47.39 </td> <td style="text-align:right;font-weight: bold;background-color: lightyellow;"> 782 </td> <td style="text-align:right;font-weight: bold;background-color: lightyellow;"> 1217 </td> </tr> <tr> <td style="text-align:left;"> 127 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 98 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 5:0 </td> <td style="text-align:right;"> 85 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -27.59 </td> <td style="text-align:right;"> -47.39 </td> <td style="text-align:right;font-weight: bold;background-color: lightyellow;"> 226 </td> <td style="text-align:right;font-weight: bold;background-color: lightyellow;"> 3420 </td> </tr> <tr> <td style="text-align:left;"> 13 </td> <td style="text-align:right;"> 1 </td> <td style="text-align:left;"> 86 </td> <td style="text-align:left;"> 2013-11-13 </td> <td style="text-align:left;"> 17:0 </td> <td style="text-align:right;"> 105 </td> <td style="text-align:left;"> Deep </td> <td style="text-align:right;"> -26.33 </td> <td style="text-align:right;"> -45.41 </td> <td style="text-align:right;font-weight: bold;background-color: lightyellow;"> 1007 </td> <td style="text-align:right;font-weight: bold;background-color: lightyellow;"> 6366 </td> </tr> <tr> <td style="text-align:left;"> 140 </td> <td style="text-align:right;"> 2 </td> <td style="text-align:left;"> 101 </td> <td style="text-align:left;"> 2013-11-18 </td> <td style="text-align:left;"> 12:0 </td> <td style="text-align:right;"> 5 </td> <td style="text-align:left;"> Surf </td> <td style="text-align:right;"> -27.79 </td> <td style="text-align:right;"> -46.96 </td> <td style="text-align:right;font-weight: bold;background-color: lightyellow;"> 366 </td> <td style="text-align:right;font-weight: bold;background-color: lightyellow;"> 500 </td> </tr> </tbody> </table> --- layout: false # Next time: Data visualization (ggplot2) .pull-left[ What you will learn : * Understand the "grammar" of graphics * Create exploratory graphics * Finalize graphics for publications ] .pull-right[ <img src="img/R_for_datascience.png" width="30%" style="display: block; margin: auto;" /> ] .student[ * Please install the following packages and their dependencies * ggplot2 * cowplot * Download data files (links on slack) ] Reading list * **[Chapter 28 of R for data science](https://r4ds.had.co.nz/graphics-for-communication.html)** * [Fundamental of data visualization](https://serialmentor.com/dataviz/) * [Data visualization: practical introduction](http://socviz.co/lookatdata.html#what-makes-bad-figures-bad)