This RMarkdown file contains the processes used for calculating Fulton’s condition factor (Kc) and the relative condition factor (Kn) of snappers caught on the Saba Bank between June 2023 and June 2024
library(ggplot2)
library(conflicted)
library(cowplot)
library(patchwork)
library(summarytools)
library(tidyverse)
library(viridis)
turbo_colors_onboard <- viridis_pal(option = "turbo", begin = 0.05, end = 0.95)(9)
turbo_colors_onboard
## [1] "#3E378FFF" "#4683F9FF" "#1FC9DDFF" "#3BF58FFF" "#A2FC3CFF" "#E7D739FF"
## [7] "#FE932AFF" "#E3440AFF" "#A31301FF"
snappers_df2506 <- read.csv("snapperdata_250624.csv")
#class categorical data as nominal factors
snappers_df2506$catch_month <- factor(snappers_df2506$catch_month)
snappers_df2506$year <- factor(snappers_df2506$year)
snappers_df2506$species <- factor(snappers_df2506$species)
snappers_df2506$common_name <- factor(snappers_df2506$common_name)
snappers_df2506$frozen <- factor(snappers_df2506$frozen)
snappers_df2506$catch_method <- factor(snappers_df2506$catch_method)
snappers_df2506$bait <- factor(snappers_df2506$bait)
snappers_df2506$area <- factor(snappers_df2506$area)
snappers_df2506$finclip <- factor(snappers_df2506$finclip)
snappers_df2506$otoliths <- factor(snappers_df2506$otoliths)
snappers_df2506$gutted <- factor(snappers_df2506$gutted)
snappers_df2506$gonads_present <- factor(snappers_df2506$gonads_present)
snappers_df2506$sex <- factor(snappers_df2506$sex)
snappers_df2506$maturity <- factor(snappers_df2506$maturity)
summary(snappers_df2506)
View(snappers_df2506)
Kc = 100·WT/TL^3
conflicts_prefer(dplyr::filter)
## [conflicted] Will prefer dplyr::filter over any other package.
#remove na values
df_conditionfactors <- snappers_df2506 %>%
drop_na(TL_CM) %>%
drop_na(W_G)
#calc Kc
Kc <- (100*df_conditionfactors$W_G/(df_conditionfactors$TL_CM)^3)
df_conditionfactors$Kc <- Kc
#generate summary
Kc_summary <- df_conditionfactors %>%
group_by(species) %>%
summarize(
count = n(),
min = min(Kc, na.rm = TRUE),
max = max(Kc, na.rm = TRUE),
mean = mean(Kc, na.rm = TRUE),
sd = sd(Kc, na.rm = TRUE)
)
Kc_summary
## # A tibble: 6 × 6
## species count min max mean sd
## <fct> <int> <dbl> <dbl> <dbl> <dbl>
## 1 Etelis oculatus 7 0.666 0.975 0.856 0.105
## 2 Lutjanus buccanella 82 0.774 1.73 1.39 0.132
## 3 Lutjanus synagris 30 1.20 1.47 1.33 0.0661
## 4 Lutjanus vivanus 91 0.833 2.86 1.28 0.244
## 5 Pristipomoides aquilonaris 23 1.15 1.52 1.35 0.0899
## 6 Rhomboplites aurorubens 62 0.720 1.68 1.37 0.181
plot_Kc <-ggplot(df_conditionfactors, aes(x = species, y = Kc)) +
geom_boxplot(aes(color = species),
show.legend = FALSE) +
theme_classic() +
scale_x_discrete(name = "Species",
labels = str_wrap(c("E. oculatus (n = 7)",
"L. buccanella (n=82)",
"L. synagris (n=30)",
"L. vivanus (n=91)",
"P. aquilonaris (n=24)",
"R. aurorubens (n=71)"), width = 14)) +
scale_y_continuous(name = "Fulton's condition factor (Kc)") +
labs(title = "Fulton's condition factor per species") +
theme(axis.text.x=element_text(face = "italic")) +
scale_fill_manual(values = turbo_colors_onboard[3], turbo_colors_onboard[5], turbo_colors_onboard[6], turbo_colors_onboard[8], turbo_colors_onboard[9])
plot_Kc
ggsave("plot_Kc.png", plot = plot_Kc, width = 4.8, height = 3.8, dpi = 400)
Kn = WT/(a·TL^b)
#BS
#a = 0.009687, b = 3.106410
BS_Kn <- df_conditionfactors %>%
filter(species == "Lutjanus buccanella") %>%
mutate(Kn = W_G / (0.009687 * TL_CM^(3.106410)))
#LS
#a = 0.0158534, b = 2.9472123
LS_Kn <- df_conditionfactors %>%
filter(species == "Lutjanus synagris") %>%
mutate(Kn = W_G / (0.0158534 * TL_CM^(2.9472123)))
#YS
#a = 0.009313, b = 3.086674
YS_Kn <- df_conditionfactors %>%
filter(species == "Lutjanus vivanus") %>%
mutate(Kn = W_G / (0.009313 * TL_CM^(3.086674)))
#WN
#a = 0.006048, b = 3.226819
WN_Kn <- df_conditionfactors %>%
filter(species == "Pristipomoides aquilonaris") %>%
mutate(Kn = W_G / (0.006048 * TL_CM^(3.226819)))
#VS
#a = 0.033884, b = 2.705590
VS_Kn <- df_conditionfactors %>%
filter(species == "Rhomboplites aurorubens") %>%
mutate(Kn = W_G / (0.033884 * TL_CM^(2.705590)))
df_conditionfactors <- bind_rows(BS_Kn, LS_Kn, YS_Kn, WN_Kn, VS_Kn)
View(df_conditionfactors)
#generate summary
Kn_summary <- df_conditionfactors %>%
group_by(species) %>%
summarize(
count = n(),
min = min(Kn, na.rm = TRUE),
max = max(Kn, na.rm = TRUE),
mean = mean(Kn, na.rm = TRUE),
sd = sd(Kn, na.rm = TRUE),
median = median(Kn, na.rm = TRUE)
)
Kn_summary
## # A tibble: 5 × 7
## species count min max mean sd median
## <fct> <int> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 Lutjanus buccanella 82 0.565 1.21 1.00 0.0954 1.01
## 2 Lutjanus synagris 30 0.911 1.11 0.996 0.0501 0.995
## 3 Lutjanus vivanus 91 0.618 2.24 1.02 0.197 1.02
## 4 Pristipomoides aquilonaris 23 0.851 1.09 0.997 0.0571 0.987
## 5 Rhomboplites aurorubens 62 0.568 1.30 1.01 0.102 1.01
plot_Kn <-ggplot(df_conditionfactors, aes(x = species, y = Kn)) +
geom_boxplot(aes(color = species),
show.legend = FALSE) +
theme_classic() +
scale_x_discrete(name = "Species",
labels = str_wrap(c("L. buccanella (n=82)",
"L. synagris (n=30)",
"L. vivanus (n=91)",
"P. aquilonaris (n=24)",
"R. aurorubens (n=71)"), width = 14)) +
scale_y_continuous(name = "Relative condition factor (Kn)") +
labs(title = "Relative condition factor per species") +
theme(axis.text.x=element_text(face = "italic")) +
scale_fill_manual(values = turbo_colors_onboard[3], turbo_colors_onboard[5], turbo_colors_onboard[6], turbo_colors_onboard[8], turbo_colors_onboard[9])
plot_Kn
ggsave("plot_Kn.png", plot = plot_Kn, width = 4.8, height = 3.8, dpi = 400)