layout: true background-image: url(img/logo-course-microbe.jpg), url(img/logo_SBR.png), url(img//NTU-Logo-full-colour.png) background-position: right 10px top 20px, right 50px bottom 50px,left 50px bottom 50px, top 350px left 500px background-size: 35%, 25%, 20% # Microbes on Earth --- <br> <br> <br> <br> ## R session 02 - Data wrangling .font120[**Daniel Vaulot**] 2021-10-12 --- layout: false class: middle, inverse # Outline .font150[ * [Data frames](#data_frames) * Concept of tidy data * Reading data * Manipulating data * Columns * Rows ] --- exclude: true layout: false background-image: url(img/wooclap_01.png) background-position: middle center background-size: 100% # Wooclap - Quizz on first 2 classes .font150[ https://www.wooclap.com/R01 ] --- exclude: true layout: false # R objects * List * Matrix * Factors * **Data frames** --- layout: true # Data frames --- name: data_frames ## What is it ? * Table mixing different types of columns (an Excel table...) * However within a column all values are similar, e.g. numeric, logical, character -- ```r df <- data.frame(label = letters[1:6], id = 1:6, value = rnorm(6, mean = 0, sd = 1), flag=c(TRUE, FALSE), # recycling rule stringsAsFactors = FALSE) df ``` ``` label id value flag 1 a 1 1.2682572 TRUE 2 b 2 1.8706980 FALSE 3 c 3 -1.0296620 TRUE 4 d 4 0.8709814 FALSE 5 e 5 -1.1437683 TRUE 6 f 6 0.6079145 FALSE ``` .warning[ * We will NOT use factors: `stringsAsFactors = FALSE` (default in R > 4.0) ] --- ## Useful functions ```r dim(df) # returns the dimensions of data frame ``` ``` [1] 6 4 ``` ```r nrow(df) # number of rows ``` ``` [1] 6 ``` ```r ncol(df) # number of columns ``` ``` [1] 4 ``` --- exclude: true ## Useful functions ```r str(df) # structure of data frame - name, type and preview of data in each column ``` ``` 'data.frame': 6 obs. of 4 variables: $ label: chr "a" "b" "c" "d" ... $ id : int 1 2 3 4 5 6 $ value: num 1.268 1.871 -1.03 0.871 -1.144 ... $ flag : logi TRUE FALSE TRUE FALSE TRUE FALSE ``` ```r colnames(df) # columns names ``` ``` [1] "label" "id" "value" "flag" ``` --- ## Access specific value * Use the `df[i,j]` notation, first index corresponds to row, second index to column ```r df[5,3] ``` ``` [1] -1.143768 ``` -- * Specify the name of the column ```r df[5,"value"] ``` ``` [1] -1.143768 ``` .warning[ * The result is a **vector** ] --- ## Access specific column * Use the `df[i,j]` notation ```r df[,3] ``` ``` [1] 1.2682572 1.8706980 -1.0296620 0.8709814 -1.1437683 0.6079145 ``` ```r df[,"value"] ``` ``` [1] 1.2682572 1.8706980 -1.0296620 0.8709814 -1.1437683 0.6079145 ``` .warning[ * The result is a **vector** ] --- exclude: true ## Access specific column * Use `$`notation ```r df$value ``` ``` [1] 1.2682572 1.8706980 -1.0296620 0.8709814 -1.1437683 0.6079145 ``` --- ## This can be used to access a specific value * `$` for the column, `[i]` for the row ```r df$value[5] ``` ``` [1] -1.143768 ``` --- ## Access row * Use the `df[i,j]` notation ```r df[1,] ``` ``` label id value flag 1 a 1 1.268257 TRUE ``` .warning[ * The result is a **data frame** ] --- ## Access specific rows * Rows for which the value of id <= 3 ```r df[df$id <= 3,] ``` ``` label id value flag 1 a 1 1.268257 TRUE 2 b 2 1.870698 FALSE 3 c 3 -1.029662 TRUE ``` .student[Select lines for which the label is c] -- ```r df[df$label == "c",] ``` ``` label id value flag 3 c 3 -1.029662 TRUE ``` .warning[This syntax is complicated - tidyverse packages make it much more easy to manipulate and remember] --- layout: true # Tidy data --- background-image: url(img/R_for_datascience.png) background-position: right 20px top 20px background-size: 30% ## Installation and Resources ### Packages .font70[ * 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 ] * unzip `R-session-02.zip` * Open in R `data_wrangling.R` ### Resources .font70[ * [R for data science](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) ] --- ## Basic concepts 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;" /> --- ## 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="80%" style="display: block; margin: auto;" /> * Flow cytometry : * pico-eukaryotes * nano-eukaryotes ] -- .pull-right[ <img src="img/carbom_flow_cytometry.png" width="80%" style="display: block; margin: auto;" /> ] --- 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="80%" 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 --- exclude: true ## 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 !important;"> 121 </td> <td style="text-align:right;background-color: lightyellow !important;"> 2 </td> <td style="text-align:left;background-color: lightyellow !important;"> </td> <td style="text-align:left;background-color: lightyellow !important;"> 2013-11-18 </td> <td style="text-align:left;background-color: lightyellow !important;"> 1899-12-31 23:50:00 </td> <td style="text-align:right;background-color: lightyellow !important;"> 30 </td> <td style="text-align:left;background-color: lightyellow !important;"> Deep </td> <td style="text-align:right;background-color: lightyellow !important;"> -27.39 </td> <td style="text-align:right;background-color: lightyellow !important;"> -47.82 </td> <td style="text-align:right;background-color: lightyellow !important;"> 1737 </td> <td style="text-align:right;background-color: lightyellow !important;"> 218 </td> <td style="text-align:right;background-color: lightyellow !important;"> 0.43 </td> <td style="text-align:right;background-color: lightyellow !important;"> 0.23 </td> <td style="text-align:right;background-color: lightyellow !important;"> 22.6 </td> <td style="text-align:right;background-color: lightyellow !important;"> 33.7 </td> </tr> <tr> <td style="text-align:left;background-color: lightyellow !important;"> 122 </td> <td style="text-align:right;background-color: lightyellow !important;"> 2 </td> <td style="text-align:left;background-color: lightyellow !important;"> </td> <td style="text-align:left;background-color: lightyellow !important;"> 2013-11-18 </td> <td style="text-align:left;background-color: lightyellow !important;"> 1899-12-31 23:50:00 </td> <td style="text-align:right;background-color: lightyellow !important;"> 50 </td> <td style="text-align:left;background-color: lightyellow !important;"> Deep </td> <td style="text-align:right;background-color: lightyellow !important;"> -27.39 </td> <td style="text-align:right;background-color: lightyellow !important;"> -47.82 </td> <td style="text-align:right;background-color: lightyellow !important;"> 853 </td> <td style="text-align:right;background-color: lightyellow !important;"> 234 </td> <td style="text-align:right;background-color: lightyellow !important;"> 0.56 </td> <td style="text-align:right;background-color: lightyellow !important;"> 0.21 </td> <td style="text-align:right;background-color: lightyellow !important;"> 20.3 </td> <td style="text-align:right;background-color: lightyellow !important;"> 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 !important;"> 126 </td> <td style="text-align:right;background-color: lightyellow !important;"> 2 </td> <td style="text-align:left;background-color: lightyellow !important;"> </td> <td style="text-align:left;background-color: lightyellow !important;"> 2013-11-18 </td> <td style="text-align:left;background-color: lightyellow !important;"> 1899-12-31 05:00:00 </td> <td style="text-align:right;background-color: lightyellow !important;"> 50 </td> <td style="text-align:left;background-color: lightyellow !important;"> Deep </td> <td style="text-align:right;background-color: lightyellow !important;"> -27.59 </td> <td style="text-align:right;background-color: lightyellow !important;"> -47.39 </td> <td style="text-align:right;background-color: lightyellow !important;"> 1217 </td> <td style="text-align:right;background-color: lightyellow !important;"> 782 </td> <td style="text-align:right;background-color: lightyellow !important;"> 0.25 </td> <td style="text-align:right;background-color: lightyellow !important;"> 0.20 </td> <td style="text-align:right;background-color: lightyellow !important;"> 23.7 </td> <td style="text-align:right;background-color: lightyellow !important;"> 37.2 </td> </tr> <tr> <td style="text-align:left;background-color: lightyellow !important;"> 127 </td> <td style="text-align:right;background-color: lightyellow !important;"> 2 </td> <td style="text-align:left;background-color: lightyellow !important;"> </td> <td style="text-align:left;background-color: lightyellow !important;"> 2013-11-18 </td> <td style="text-align:left;background-color: lightyellow !important;"> 1899-12-31 05:00:00 </td> <td style="text-align:right;background-color: lightyellow !important;"> 85 </td> <td style="text-align:left;background-color: lightyellow !important;"> Deep </td> <td style="text-align:right;background-color: lightyellow !important;"> -27.59 </td> <td style="text-align:right;background-color: lightyellow !important;"> -47.39 </td> <td style="text-align:right;background-color: lightyellow !important;"> 3420 </td> <td style="text-align:right;background-color: lightyellow !important;"> 226 </td> <td style="text-align:right;background-color: lightyellow !important;"> 0.25 </td> <td style="text-align:right;background-color: lightyellow !important;"> 0.47 </td> <td style="text-align:right;background-color: lightyellow !important;"> 22.9 </td> <td style="text-align:right;background-color: lightyellow !important;"> 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 --- exclude: true ## Filling missing values - fill ```r samples <- tidyr::fill(samples, station) ``` -- exclude: 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: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. --- layout: false # Write data ## Text file - __readr::write_tsv()__ : write tab delimited files ```r readr::write_tsv(samples, "data/CARBOM data fixed.tsv") ``` -- ## Excel file - __openxlsx::write.xlsx__ : write tab delimited files - Many options: specific sheet, formatting etc... ```r openxlsx::write.xlsx(samples, "data/CARBOM data fixed.xlsx") ``` --- exclude: true # Write data ## Library rio * Many output formats * import() / export() <iframe src="https://cran.r-project.org/web/packages/rio/vignettes/rio.html" width="100%" height="400px" data-external="1"></iframe> --- layout: false # 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" "time" "depth" "level" "latitude" "longitude" "picoeuks" "nanoeuks" [12] "phosphates" "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 !important;"> 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 !important;"> 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 !important;"> 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 !important;"> 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 !important;"> 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 !important;"> 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 !important;"> 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 !important;"> 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 !important;"> 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 !important;"> 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 !important;"> 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 !important;"> 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 !important;"> 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 !important;"> 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 !important;"> 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 !important;"> 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 !important;"> 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 !important;"> 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 !important;"> 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 !important;"> 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 !important;"> 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 !important;"> 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 !important;"> 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 !important;"> 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 !important;"> 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 !important;"> 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 !important;"> 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 !important;"> 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 !important;"> 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 !important;"> 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 !important;"> 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 !important;"> 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 !important;"> 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 !important;"> 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 !important;"> 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 !important;"> 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 !important;"> 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 !important;"> 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 !important;"> 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 !important;"> TR_2_St_101 </td> </tr> </tbody> </table> --- exclude: true ## Changing type of some columns - mutate ```r samples <- samples %>% dplyr::mutate(time = str_c(lubridate::hour(time), lubridate::minute(time), sep=":")) ``` -- exclude: 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: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 !important;"> 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 !important;"> 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 !important;"> 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 !important;"> 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 !important;"> 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 !important;"> 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 !important;"> 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 !important;"> 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 !important;"> 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 !important;"> 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 !important;"> 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 !important;"> 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 !important;"> 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 !important;"> 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 !important;"> 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 !important;"> 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 !important;"> 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 !important;"> 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 !important;"> 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 !important;"> 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. --- exclude: true ## Order rows - transform to numeric ```r samples <- samples %>% dplyr::mutate(station = as.numeric(station)) %>% dplyr::arrange(transect, station) ``` -- exclude: 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: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 !important;"> 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 !important;"> 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 !important;"> 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 !important;"> 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 !important;"> 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 !important;"> 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 !important;"> 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 !important;"> 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 !important;"> 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 !important;"> 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 - count * Compute number of stations per transect ```r stations_count <- samples %>% dplyr::count(transect) ``` -- <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;"> n </th> </tr> </thead> <tbody> <tr> <td style="text-align:right;"> 0 </td> <td style="text-align:right;font-weight: bold;background-color: lightyellow !important;"> 5 </td> </tr> <tr> <td style="text-align:right;"> 1 </td> <td style="text-align:right;font-weight: bold;background-color: lightyellow !important;"> 5 </td> </tr> <tr> <td style="text-align:right;"> 2 </td> <td style="text-align:right;font-weight: bold;background-color: lightyellow !important;"> 18 </td> </tr> </tbody> </table> --- ## 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 !important;"> 2 </td> <td style="text-align:right;font-weight: bold;background-color: lightyellow !important;"> 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 !important;"> 1 </td> <td style="text-align:right;font-weight: bold;background-color: lightyellow !important;"> 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 !important;"> 1 </td> <td style="text-align:right;font-weight: bold;background-color: lightyellow !important;"> 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 !important;"> 1 </td> <td style="text-align:right;font-weight: bold;background-color: lightyellow !important;"> 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 !important;"> 2 </td> <td style="text-align:right;font-weight: bold;background-color: lightyellow !important;"> 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 !important;"> 1 </td> <td style="text-align:right;font-weight: bold;background-color: lightyellow !important;"> 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 !important;"> 1 </td> <td style="text-align:right;font-weight: bold;background-color: lightyellow !important;"> 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 !important;"> 1 </td> <td style="text-align:right;font-weight: bold;background-color: lightyellow !important;"> 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 !important;"> 3 </td> <td style="text-align:right;font-weight: bold;background-color: lightyellow !important;"> 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 !important;"> 3 </td> <td style="text-align:right;font-weight: bold;background-color: lightyellow !important;"> 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: false class: inverse # Recap - Import and Export data - Select and create columns - Summarize data - _Joining_ - _Long vs. Wide format_ - _Displaying tables_ --- layout: false background-image: url(img/R_for_datascience.png) background-position: right 20px top 20px background-size: 30% # Next time: Data visualization (ggplot2) ## What you will learn : * Understand the "grammar" of graphics * Create exploratory graphics .student[ * Please install the following packages and their dependencies * ggplot2 * 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)*