Draft in progress 2/7/18. Quick graphic exploration of 2015 diet data.
R Session Info
sessionInfo()
## R version 3.4.3 (2017-11-30)
## Platform: x86_64-apple-darwin15.6.0 (64-bit)
## Running under: macOS High Sierra 10.13.3
##
## Matrix products: default
## BLAS: /Library/Frameworks/R.framework/Versions/3.4/Resources/lib/libRblas.0.dylib
## LAPACK: /Library/Frameworks/R.framework/Versions/3.4/Resources/lib/libRlapack.dylib
##
## locale:
## [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
##
## attached base packages:
## [1] stats graphics grDevices utils datasets methods base
##
## loaded via a namespace (and not attached):
## [1] compiler_3.4.3 backports_1.1.2 magrittr_1.5 rprojroot_1.3-2
## [5] tools_3.4.3 htmltools_0.3.6 yaml_2.1.16 Rcpp_0.12.15
## [9] stringi_1.1.6 rmarkdown_1.8 knitr_1.19 stringr_1.2.0
## [13] digest_0.6.15 evaluate_0.10.1
#require packages
library(googlesheets)
library(tidyverse)
library(forcats)
suppressMessages(library(dplyr))
#detach("package:MASS", unload=TRUE) #pkg masks some dplyr functions
# Clear environment
rm(list=ls())
#ensure correct name of google sheet desired
gs_ls("2016_EPSCoR_Aquatic_Ecology_Database")
#create object from overall google sheet
SCTC2016 <- gs_title("2016_EPSCoR_Aquatic_Ecology_Database")
###################################################################
# Create Stacked Bar Charts of Diet Proportions by Sampling Event #
###################################################################
#read in worksheet containing diet data
diet <- SCTC2016 %>%
gs_read(ws = "2016 Diet Contents Data",col_names=TRUE) %>%
#rename needed columns
rename(prcsdt=Process_Date,
sample.id=Sample.ID,
spp=Fish_Species,
river=River,
reach=Reach,
site=Site,
date=Date,
sampledate=Sample_Date,
taxkey=Taxon_Keyed,
prey=Prey_Type_Used,
preycat=PreyCategory,
dm_tot=Total_Prey_Dry_Mass_mg,
sample.event=Sample.Event,
event.num=sample.event.num,
TA=TA_Final) %>%
#select desired columns
select(sample.id,sample.event,river,
reach,site,sampledate,preycat,spp,dm_tot,TA,event.num)
#filter out non-diet samples and blank data
diet <- diet %>% filter(site!="DR1",
!is.na(spp),
!is.na(sample.event),
!is.na(preycat),
!is.na(dm_tot),
!is.na(event.num)
)
#transform columns to desired classes
diet <- transform(diet,
dm_tot = as.numeric(dm_tot),
sample.event = as.factor(sample.event),
event.num = as.factor(event.num),
spp = as.factor(spp)) %>%
mutate(season = fct_recode(event.num, #code sampling events as seasons
"Early Summer"="1",
"Mid-Summer" = "2",
"Late Summer" ="3",
"Fall"="4"))
#create sum of pooled prey DM for each prey category by fish species and sample event
dm_sum_by_event <- diet %>%
group_by(river,reach,sample.event,spp,preycat,TA,season) %>%
summarise(sum(dm_tot)) %>%
rename(dm_sum=`sum(dm_tot)`)
#create table of summed dry mass for each fish species by sampling event
dm_sum_spp <- dm_sum_by_event %>%
group_by(sample.event,spp) %>%
summarise(pool_sum = sum(dm_sum))
#join pooled prey DM values to table grouped by fish species and prey category
dm_sum_final <- dm_sum_spp %>%
left_join(dm_sum_by_event,by=c("sample.event","spp")) %>%
mutate(pct = (dm_sum/pool_sum)*100) %>%
filter(sample.event!="#N/A")
#create table of quantity of Chinook and coho non-empty diet samples from each SITE VISIT
diet_sample_count <- SCTC2016 %>%
gs_read(ws = "C 2016 Diet & LW Data",col_names=TRUE) %>%
filter(DS=="Y") %>%
mutate(season = fct_recode(as.factor(sample.event.num),
"Early Summer"="1",
"Mid-Summer" = "2",
"Late Summer" ="3",
"Fall" = "4")) %>%
group_by(sample.event,season,spp) %>%
summarise(diet_count=n())
#create table of quantity of Chinook and coho non-empty diet samples from each SEASON
diet_sample_season <- SCTC2016 %>%
gs_read(ws = "C 2016 Diet & LW Data",col_names=TRUE) %>%
filter(DS=="Y") %>%
mutate(season = fct_recode(as.factor(sample.event.num),
"Early Summer"="1",
"Mid-Summer" = "2",
"Late Summer" ="3",
"Fall" = "4")) %>%
group_by(river,season,spp) %>%
summarise(diet_count=n()) %>%
mutate(event_label = paste(as.character(spp), "( n=", as.character(diet_count),")"))
# Join diet sample dry mass calculations by sampling event with fish count table by event.
# e.g., how many fish of each species were diet-sampled at each sampling event?
#data is lumped by sampling event
dm_sum_final_by_event <- dm_sum_final %>%
left_join(diet_sample_count,
by=c("season","spp", "sample.event")) %>%
mutate(event_label = paste("n =", as.character(diet_count)))
#join diet sample dry mass calculations by sampling event with fish count table by season
#e.g., how many fish of each species were diet-sampled in each season?
#data is lumped for each drainage by `season`
dm_sum_final_by_season <- dm_sum_final_by_event %>%
group_by(season, river, spp, preycat, pct) %>%
summarise(dry_mass_pooled = sum(dm_sum))
# can I use this plot data pooled longitudinally throughout each draiange for each "season"?
View(dm_sum_final_by_season)
##################
# Visualizations #
##################
##### COHO
################
# Beaver Creek #
################
#DM results for Beaver Creek 2016 only, Coho only
dm_sum_final_beaver_2016 <- dm_sum_final_by_event %>%
filter(river=="Beaver Creek", spp=="Coho") %>%
mutate(season = factor(season, levels = c("Early Summer", "Mid-Summer", "Late Summer", "Fall")))
#Create faceted bar charts of dry mass proportions by species and sampling event
#Beaver Creek 2016
DMbeaver2016 <- ggplot() + geom_bar(aes(y=pct, x=spp, fill=preycat),
data = dm_sum_final_beaver_2016,
stat="identity") +
labs(x="",y="Percent Dry Mass (%)") +
scale_fill_discrete(name="Prey Category",
breaks=c("Fish",
"InvertAquatic",
"InvertTerrestrial_AqOrigin",
"InvertTerrestrial_TerOrigin",
"InvertTerrestrial_UnkOrigin",
"InvertUnknown",
"FishEggs"),
labels=c("Fish",
"Aquatic Invertebrate",
"Terrestrial Invertebrate,\nAquatic Origin",
"Terrestrial Invertebrate,\nTerrestrial Origin ",
"Terrestrial Invertebrate,\nUnknown Origin",
"Unknown Invertebrate",
"Fish Eggs")) +
ggtitle("Beaver Creek 2016\n Juvenile Coho Diet (% Dry Mass)") +
theme(legend.key.size = unit(1.7, 'lines')) +
geom_text(data=dm_sum_final_beaver_2016,
aes(x=1, y=4, label=event_label),
vjust = 0.5) +
theme(plot.title = element_text(size = 24, face = "bold"),
axis.text.x = element_text(size=14),
axis.title.y = element_text(size = 14, face = "bold"))
#plot
DMbeaver2016 +
facet_grid(season~reach) +
theme(strip.text.x = element_text(size=10, face="bold"),
strip.text.y = element_text(size=10, face="bold"))
#################
# Russian River #
#################
#DM results for Russian River 2016 only, Coho only
dm_sum_final_russian_2016 <- dm_sum_final_by_event %>%
filter(river=="Russian River", spp=="Coho") %>%
mutate(season = factor(season, levels = c("Early Summer", "Mid-Summer", "Late Summer", "Fall")))
#Create faceted bar charts of dry mass proportions by species and sampling event
#Russian River 2016
DMrussian2016 <- ggplot() + geom_bar(aes(y=pct, x=spp, fill=preycat),
data = dm_sum_final_russian_2016,
stat="identity") +
labs(x="",y="Percent Dry Mass (%)") +
scale_fill_discrete(name="Prey Category",
breaks=c("Fish",
"InvertAquatic",
"InvertTerrestrial_AqOrigin",
"InvertTerrestrial_TerOrigin",
"InvertTerrestrial_UnkOrigin",
"InvertUnknown",
"FishEggs"),
labels=c("Fish",
"Aquatic Invertebrate",
"Terrestrial Invertebrate,\nAquatic Origin",
"Terrestrial Invertebrate,\nTerrestrial Origin ",
"Terrestrial Invertebrate,\nUnknown Origin",
"Unknown Invertebrate",
"Fish Eggs")) +
ggtitle("Russian River 2016\n Juvenile Coho Diet (% Dry Mass)") +
theme(legend.key.size = unit(1.7, 'lines')) +
geom_text(data=dm_sum_final_russian_2016,
aes(x=1, y=4, label=event_label),
vjust = 0.5) +
theme(plot.title = element_text(size = 24, face = "bold"),
axis.text.x = element_text(size=14),
axis.title.y = element_text(size = 14, face = "bold"))
#plot
DMrussian2016 +
facet_grid(season~reach) +
theme(strip.text.x = element_text(size=10, face="bold"),
strip.text.y = element_text(size=10, face="bold"))
###################
# Ptarmigan Creek #
###################
#DM results for Ptarmigan Creek 2016 only, Coho only
dm_sum_final_ptarmigan_2016 <- dm_sum_final_by_event %>%
filter(river=="Ptarmigan Creek", spp=="Coho") %>%
mutate(season = factor(season, levels = c("Early Summer", "Mid-Summer", "Late Summer", "Fall")))
#Create faceted bar charts of dry mass proportions by species and sampling event
#Ptarmigan Creek 2016
DMptarmigan2016 <- ggplot() + geom_bar(aes(y=pct, x=spp, fill=preycat),
data = dm_sum_final_ptarmigan_2016,
stat="identity") +
labs(x="",y="Percent Dry Mass (%)") +
scale_fill_discrete(name="Prey Category",
breaks=c("Fish",
"InvertAquatic",
"InvertTerrestrial_AqOrigin",
"InvertTerrestrial_TerOrigin",
"InvertTerrestrial_UnkOrigin",
"InvertUnknown",
"FishEggs"),
labels=c("Fish",
"Aquatic Invertebrate",
"Terrestrial Invertebrate,\nAquatic Origin",
"Terrestrial Invertebrate,\nTerrestrial Origin ",
"Terrestrial Invertebrate,\nUnknown Origin",
"Unknown Invertebrate",
"Fish Eggs")) +
ggtitle("Ptarmigan Creek 2016\n Juvenile Coho Diet (% Dry Mass)") +
theme(legend.key.size = unit(1.7, 'lines')) +
geom_text(data=dm_sum_final_ptarmigan_2016,
aes(x=1, y=4, label=event_label),
vjust = 0.5) +
theme(plot.title = element_text(size = 24, face = "bold"),
axis.text.x = element_text(size=14),
axis.title.y = element_text(size = 14, face = "bold"))
#plot
DMptarmigan2016 +
facet_grid(season~reach) +
theme(strip.text.x = element_text(size=10, face="bold"),
strip.text.y = element_text(size=10, face="bold"))
##### Chinook
################
# Beaver Creek #
################
#DM results for Beaver Creek 2016 only, Chinook only
dm_sum_final_beaver_2016 <- dm_sum_final_by_event %>%
filter(river=="Beaver Creek", spp=="Chinook") %>%
mutate(season = factor(season, levels = c("Early Summer", "Mid-Summer", "Late Summer", "Fall")))
#Create faceted bar charts of dry mass proportions by species and sampling event
#Beaver Creek 2016
DMbeaver2016 <- ggplot() + geom_bar(aes(y=pct, x=spp, fill=preycat),
data = dm_sum_final_beaver_2016,
stat="identity") +
labs(x="",y="Percent Dry Mass (%)") +
scale_fill_discrete(name="Prey Category",
breaks=c("Fish",
"InvertAquatic",
"InvertTerrestrial_AqOrigin",
"InvertTerrestrial_TerOrigin",
"InvertTerrestrial_UnkOrigin",
"InvertUnknown",
"FishEggs"),
labels=c("Fish",
"Aquatic Invertebrate",
"Terrestrial Invertebrate,\nAquatic Origin",
"Terrestrial Invertebrate,\nTerrestrial Origin ",
"Terrestrial Invertebrate,\nUnknown Origin",
"Unknown Invertebrate",
"Fish Eggs")) +
ggtitle("Beaver Creek 2016\n Juvenile Chinook Diet (% Dry Mass)") +
theme(legend.key.size = unit(1.7, 'lines')) +
geom_text(data=dm_sum_final_beaver_2016,
aes(x=1, y=4, label=event_label),
vjust = 0.5) +
theme(plot.title = element_text(size = 24, face = "bold"),
axis.text.x = element_text(size=14),
axis.title.y = element_text(size = 14, face = "bold"))
#plot
DMbeaver2016 +
facet_grid(season~reach) +
theme(strip.text.x = element_text(size=10, face="bold"),
strip.text.y = element_text(size=10, face="bold"))
#################
# Russian River #
#################
#DM results for Russian River 2016 only, Chinook only
dm_sum_final_russian_2016 <- dm_sum_final_by_event %>%
filter(river=="Russian River", spp=="Chinook") %>%
mutate(season = factor(season, levels = c("Early Summer", "Mid-Summer", "Late Summer", "Fall")))
#Create faceted bar charts of dry mass proportions by species and sampling event
#Russian River 2016
DMrussian2016 <- ggplot() + geom_bar(aes(y=pct, x=spp, fill=preycat),
data = dm_sum_final_russian_2016,
stat="identity") +
labs(x="",y="Percent Dry Mass (%)") +
scale_fill_discrete(name="Prey Category",
breaks=c("Fish",
"InvertAquatic",
"InvertTerrestrial_AqOrigin",
"InvertTerrestrial_TerOrigin",
"InvertTerrestrial_UnkOrigin",
"InvertUnknown",
"FishEggs"),
labels=c("Fish",
"Aquatic Invertebrate",
"Terrestrial Invertebrate,\nAquatic Origin",
"Terrestrial Invertebrate,\nTerrestrial Origin ",
"Terrestrial Invertebrate,\nUnknown Origin",
"Unknown Invertebrate",
"Fish Eggs")) +
ggtitle("Russian River 2016\n Juvenile Chinook Diet (% Dry Mass)") +
theme(legend.key.size = unit(1.7, 'lines')) +
geom_text(data=dm_sum_final_russian_2016,
aes(x=1, y=4, label=event_label),
vjust = 0.5) +
theme(plot.title = element_text(size = 24, face = "bold"),
axis.text.x = element_text(size=14),
axis.title.y = element_text(size = 14, face = "bold"))
#plot
DMrussian2016 +
facet_grid(season~reach) +
theme(strip.text.x = element_text(size=10, face="bold"),
strip.text.y = element_text(size=10, face="bold"))
###################
# Ptarmigan Creek #
###################
#DM results for Ptarmigan Creek 2016 only, Chinook only
dm_sum_final_ptarmigan_2016 <- dm_sum_final_by_event %>%
filter(river=="Ptarmigan Creek", spp=="Chinook") %>%
mutate(season = factor(season, levels = c("Early Summer", "Mid-Summer", "Late Summer", "Fall")))
#Create faceted bar charts of dry mass proportions by species and sampling event
#Ptarmigan Creek 2016
DMptarmigan2016 <- ggplot() + geom_bar(aes(y=pct, x=spp, fill=preycat),
data = dm_sum_final_ptarmigan_2016,
stat="identity") +
labs(x="",y="Percent Dry Mass (%)") +
scale_fill_discrete(name="Prey Category",
breaks=c("Fish",
"InvertAquatic",
"InvertTerrestrial_AqOrigin",
"InvertTerrestrial_TerOrigin",
"InvertTerrestrial_UnkOrigin",
"InvertUnknown",
"FishEggs"),
labels=c("Fish",
"Aquatic Invertebrate",
"Terrestrial Invertebrate,\nAquatic Origin",
"Terrestrial Invertebrate,\nTerrestrial Origin ",
"Terrestrial Invertebrate,\nUnknown Origin",
"Unknown Invertebrate",
"Fish Eggs")) +
ggtitle("Ptarmigan Creek 2016\n Juvenile Chinook Diet (% Dry Mass)") +
theme(legend.key.size = unit(1.7, 'lines')) +
geom_text(data=dm_sum_final_ptarmigan_2016,
aes(x=1, y=4, label=event_label),
vjust = 0.5) +
theme(plot.title = element_text(size = 24, face = "bold"),
axis.text.x = element_text(size=14),
axis.title.y = element_text(size = 14, face = "bold"))
#plot
DMptarmigan2016 +
facet_grid(season~reach) +
theme(strip.text.x = element_text(size=10, face="bold"),
strip.text.y = element_text(size=10, face="bold"))