For oogonia, I’ll take the average of oogonia released per thalli. For pH I’ll correct the pH Hach readings based on our discrete samples (explained below). For salinity, dissoved oxygen, and temperature, I’ll use the average values from the units measured by Hach.

For pH I will correct the value of the unit Hach values to the discrete values using the regressions line I made here: https://cmwegener.github.io/thesis/hach_vs_discrete.html pH_Hach=1.8+0.78*pH_discrete
pH_discrete=(pH_Hach - 1.8)/.78

rm(list=ls())

library(tidyverse)
library(ggpubr)
library(scales)
library(chron)
library(plotly)
library(taRifx)
library(aweek)
library(easypackages)
library(renv)
library(here)
library(ggthemes)
library(gridExtra)
library(patchwork)
library(tidyquant)
library(recipes) 
library(cranlogs)
library(knitr)
library(openair)
library(latticeExtra)

Read in data

exp<-read.csv("C:/Users/chels/Box Sync/Thesis/Data/Working data/Final data/mesocosm_all.csv", header = TRUE, sep=",", fileEncoding="UTF-8-BOM", stringsAsFactors = FALSE)

Convert unit_ph_hach to discrete pH using equation.

exp$unit_ph_corrected<-(exp$unit_ph_hach-1.8)/.78

Convert to number

exp$oo_disc_1<-as.numeric(exp$oo_disc_1)
exp$oo_disc_2<-as.numeric(exp$oo_disc_2)
exp$oo_disc_3<-as.numeric(exp$oo_disc_3)
exp$oo_disc_4<-as.numeric(exp$oo_disc_4)

exp$unit_sal_hach<-as.numeric(exp$unit_sal_hach)
## Warning: NAs introduced by coercion

Average oogonia per thalli (average per unit)

exp$avg_disc_oo<-rowMeans(exp[,c('oo_disc_1', 'oo_disc_2', 'oo_disc_3','oo_disc_4')], na.rm=TRUE)

Let’s subset the data per run

r1<-subset(exp, run=='1')
r2<-subset(exp, run=='2')
r3<-subset(exp,run=='3')

Average unit pH over the course of each experiment (using converted values)

r1_av_ph<-aggregate( unit_ph_corrected ~ thalli,r1, mean)

r2_av_ph<-aggregate( unit_ph_corrected ~ thalli,r2, mean)

r3_av_ph<-aggregate( unit_ph_corrected ~ thalli,r3, mean)

Average unit salinity over the course of each experiment (using Hach readings)

r1_av_sal<-aggregate( unit_sal_hach ~ thalli,r1, mean)

r2_av_sal<-aggregate( unit_sal_hach ~ thalli,r2, mean)

r3_av_sal<-aggregate( unit_sal_hach ~ thalli,r3, mean)

Average unit dissolved oxygen over the course of each experiment (using Hach readings)

r1_av_do<-aggregate( unit_do_hach ~ thalli,r1, mean)

r2_av_do<-aggregate( unit_do_hach ~ thalli,r2, mean)

r3_av_do<-aggregate( unit_do_hach ~ thalli,r3, mean)

Average unit temperature over the course of each experiment (using Hach readings)

r1_av_temp<-aggregate( unit_temp_hach ~ thalli,r1, mean)

r2_av_temp<-aggregate( unit_temp_hach ~ thalli,r2, mean)

r3_av_temp<-aggregate( unit_temp_hach ~ thalli,r3, mean)

Combine to make new data frame

r1_all<-cbind(r1_av_ph, r1_av_sal, r1_av_do, r1_av_temp)
r2_all<-cbind(r2_av_ph, r2_av_sal, r2_av_do, r2_av_temp)
r3_all<-cbind(r3_av_ph, r3_av_sal, r3_av_do, r3_av_temp)

Add run number

r1_all$run<-"1"
r2_all$run<-"2"
r3_all$run<-"3"

Change column names. Not needed. Just helps me check track

names(r1_all)[names(r1_all) == "unit_sal_hach"] <- "unit_avg_sal"
names(r2_all)[names(r2_all) == "unit_sal_hach"] <- "unit_avg_sal"
names(r3_all)[names(r3_all) == "unit_sal_hach"] <- "unit_avg_sal"

names(r1_all)[names(r1_all) == "unit_ph_corrected"] <- "unit_avg_ph_c"
names(r2_all)[names(r2_all) == "unit_ph_corrected"] <- "unit_avg_ph_c"
names(r3_all)[names(r3_all) == "unit_ph_corrected"] <- "unit_avg_ph_c"

names(r1_all)[names(r1_all) == "unit_do_hach"] <- "unit_avg_do"
names(r2_all)[names(r2_all) == "unit_do_hach"] <- "unit_avg_do"
names(r3_all)[names(r3_all) == "unit_do_hach"] <- "unit_avg_do"

names(r1_all)[names(r1_all) == "unit_temp_hach"] <- "unit_avg_temp"
names(r2_all)[names(r2_all) == "unit_temp_hach"] <- "unit_avg_temp"
names(r3_all)[names(r3_all) == "unit_temp_hach"] <- "unit_avg_temp"

Remove redundant “thalli” columns

r1_all<-r1_all[-c(3,5,7)]
r2_all<-r2_all[-c(3,5,7)]
r3_all<-r3_all[-c(3,5,7)]

r1<-r1[-c(6)]
r2<-r2[-c(6)]
r3<-r3[-c(6)]

Add average oogoina data. Combine rx with rx_all

r1_all2 <-
  merge(r1, r1_all[, c("thalli",
                       "unit_avg_sal",
                       "unit_avg_ph_c",
                       "unit_avg_do",
                       "unit_avg_temp")], by = "thalli")
r2_all2 <-
  merge(r2, r2_all[, c("thalli",
                       "unit_avg_sal",
                       "unit_avg_ph_c",
                       "unit_avg_do",
                       "unit_avg_temp")], by = "thalli")
r3_all2 <-
  merge(r3, r3_all[, c("thalli",
                       "unit_avg_sal",
                       "unit_avg_ph_c",
                       "unit_avg_do",
                       "unit_avg_temp")], by = "thalli")



final <- rbind(r1_all2, r2_all2, r3_all2)

write.csv(final,'C:/Users/chels/Box Sync/Thesis/Data/Working data/Final data/meso.calculated.csv' )