From 3e25fc8ab6af49a676fcc2bfd0fbc4c0a712a76d Mon Sep 17 00:00:00 2001 From: Sam Schiano <125507018+Schiano-NOAA@users.noreply.github.com> Date: Mon, 19 Oct 2026 15:19:01 -0400 Subject: [PATCH 1/9] place model approaches into own R files to setup improvement for testing and example datasets --- R/conout_bam.R | 520 ++++++++++ R/conout_rceattle.R | 486 ++++++++++ R/conout_ss3.R | 1265 ++++++++++++++++++++++++ R/convert_output.R | 2255 +------------------------------------------ 4 files changed, 2274 insertions(+), 2252 deletions(-) create mode 100644 R/conout_bam.R create mode 100644 R/conout_rceattle.R create mode 100644 R/conout_ss3.R diff --git a/R/conout_bam.R b/R/conout_bam.R new file mode 100644 index 00000000..a8588c09 --- /dev/null +++ b/R/conout_bam.R @@ -0,0 +1,520 @@ +conout_bam <- function( + file, + out_new, + fleet_names = NULL +) { + # Extract values from BAM output - model file after following ADMB2R + dat <- dget(file) + + # Find fleet names + if (is.null(fleet_names)) { + # Extract names from indices + indices <- dat$t.series |> + dplyr::select(dplyr::contains("U.") & dplyr::contains(".ob")) + fleets_ind <- stringr::str_extract(as.vector(colnames(indices)), "(?<=U\\.)\\w+(?=\\.ob)") + # Extract names from landings + landings <- dat$t.series |> + dplyr::select(dplyr::contains("L.") & dplyr::contains(".ob") | + dplyr::contains("D.") & dplyr::contains(".ob")) + fleets_land <- stringr::str_extract(as.vector(colnames(landings)), "(?<=L\\.)\\w+(?=\\.ob)") + fleets_disc <- stringr::str_extract(as.vector(colnames(landings)), "(?<=D\\.)\\w+(?=\\.ob)") + # Extract names from lof F dev + parm <- dat$parm.tvec |> + dplyr::select(dplyr::contains("log.F.dev.") | + dplyr::contains("log.F.dev.") & dplyr::contains(".D")) + # fleets_parm_D <- stringr::str_extract(as.vector(colnames(parm)), "(?<=log\\.F\\.dev\\.)\\w+(?=\\.D)") + fleets_parm <- stringr::str_extract(as.vector(colnames(parm)), "(?<=log\\.F\\.dev\\.)\\w+") + fleets <- unique(tolower(c(fleets_ind, fleets_land, fleets_disc, fleets_parm))) + fleet_names <- fleets[!is.na(fleets)] + if (any(is.na(fleet_names))) { + cli::cli_abort("No fleet names found in dataframe. Please indicate the abbreviations of fleet names using fleet_names arg.") + } + } # else { + # # check fleet names are input + # # if (any(is.na(fleet_names))) { + # fleet_names <- fleet_names + # } + # Output fleet names in console + cli::cli_alert_info("Identified fleet names:") + cli::cli_alert_info("{fleet_names}") + # Create list for morphed dfs to go into (for rbind later) + out_list <- list() + + factors <- c("year", "fleet", "fleet_name", "age", "sex", "area", "seas", "season", "time", "era", "subseas", "subseason", "platoon", "platoo", "growth_pattern", "gp", "nsim", "age_a") + errors <- c("StdDev", "sd", "se", "SE", "cv", "CV", "stddev") + units <- c("mt", "lbs", "eggs") + # argument for function when model == BAM + # fleet_names <- c("cl", "cL","cp","mrip","ct", "hb", "HB", "comm","Mbft","CVID") + + ##### BAM loop ---- + # Extract data from list fit to output df + # Loop over all items to output each object/transform + # Not transforming or including info chunk + for (p in 2:length(dat)) { + extract <- dat[p] + cli::cli_alert_info(glue::glue("Processing {names(extract)}")) + # is the object class matrix, list, or vector + if (is.vector(extract[[1]])) { + if (is.list(extract[[1]])) { # indicates vector and list + if (any(vapply(extract[[1]], is.matrix, FUN.VALUE = logical(1)))) { + extract_list <- list() + for (i in seq_along(extract[[1]])) { + if (is.vector(extract[[1]][[i]])) { + df <- as.data.frame(extract[[1]][i]) |> + tibble::rownames_to_column(var = "age") |> + tidyr::pivot_longer( + cols = -age, + values_to = "estimate", + names_to = "label" + ) |> + dplyr::mutate( + label = names(extract[[1]][i]), + # label_init = names(extract[[1]][i]), + fleet = dplyr::case_when( + grepl(paste(fleet_names, collapse = "|"), label) ~ stringr::str_extract(label, paste(fleet_names, collapse = "|")), + TRUE ~ NA + ), + module_name = names(extract), + label = dplyr::case_when( + grepl(paste(fleet_names, collapse = "|"), label) ~ stringr::str_replace(label, paste(".", fleet_names, sep = "", collapse = "|"), ""), + TRUE ~ label + ) + ) + df[setdiff(tolower(names(out_new)), tolower(names(df)))] <- NA + extract_list[[names(extract[[1]][i])]] <- df + } else { + df <- as.data.frame(extract[[1]][[i]]) |> + tibble::rownames_to_column(var = "year") + df <- df |> + dplyr::rename_with( + ~ ifelse(max(as.numeric(df$year)) < 50, + c("age_a"), c("year") + ), + year + ) + if (grepl("lcomp", names(extract[[1]][i]))) { + namesto <- "len_bins" + } else if (grepl("acomp", names(extract[[1]][i]))) { + namesto <- "age" + } else { + # Default + namesto <- "age" + } + df2 <- df |> + tidyr::pivot_longer( + cols = -intersect(colnames(df), c("year", "age_a")), + names_to = namesto, + values_to = "estimate" + ) |> + dplyr::mutate( + module_name = names(extract), + label = names(extract[[1]][i]), + fleet = dplyr::case_when( + grepl(paste(fleet_names, collapse = "|"), tolower(label)) ~ stringr::str_extract(tolower(label), paste(fleet_names, collapse = "|")), + TRUE ~ NA + ), # stringr::str_extract(module_name, "(?<=\\.)\\w+(?=\\.)"), + label = dplyr::case_when( + grepl(paste0(fleet_names, collapse = "|"), tolower(label)) ~ stringr::str_replace(tolower(label), paste0(".", fleet_names, collapse = "|"), ""), + TRUE ~ names(extract[[1]][i]) + ) + # label_init = names(extract[[1]][i]), + + # label = dplyr::case_when( + # is.na(fleet) ~ names(extract[[1]][i]), + # TRUE ~ stringr::str_replace(tolower(label), paste(".", fleet_names, sep = "", collapse = "|"), "") + # ) + ) # stringr::str_replace(module_name, "\\.[^.]+\\.", ".")) + df2[setdiff(tolower(names(out_new)), tolower(names(df2)))] <- NA + extract_list[[names(extract[[1]][i])]] <- df2 + } # close if statement + } # close for loop + new_df <- Reduce(rbind, extract_list) + out_list[[names(extract)]] <- new_df + } else if (any(vapply(extract[[1]], is.vector, FUN.VALUE = logical(1)))) { # all must be a vector to work - so there must be conditions for dfs with a mix + df <- data.frame(extract[[1]]) + if (length(intersect(colnames(df), c(factors, errors))) > 0) { + df2 <- df |> + tidyr::pivot_longer( + cols = -intersect(colnames(df), c(factors, errors)), + names_to = "label", + values_to = "estimate" + ) |> + dplyr::mutate(module_name = names(extract)) + } else { + df2 <- df |> + tidyr::pivot_longer( + cols = tidyselect::everything(), + names_to = "label", + values_to = "estimate" + ) |> + dplyr::mutate(module_name = names(extract)) + } + if (any(grepl(paste(fleet_names, collapse = "|"), unique(df2$label)))) { + df2 <- df2 |> + dplyr::mutate( + fleet = dplyr::case_when( + grepl(paste(fleet_names, collapse = "|"), tolower(label)) ~ stringr::str_extract(tolower(label), paste(fleet_names, collapse = "|")), + # grepl(paste(fleet_names, collapse = "|"), label) ~ stringr::str_extract(ex, paste(fleet_names,collapse="|")), + TRUE ~ NA + ), + # Number after fleet name is what? variable among df? + age = dplyr::case_when( + grepl("r0$|b0$", tolower(label)) ~ NA, + module_name != "parms" & grepl(".Age[0-9]+.", label) ~ stringr::str_extract(label, "(?<=.Age?)[0-9]+"), + module_name != "parms" & grepl("[0-9]+$", label) & as.numeric(stringr::str_extract(label, "[0-9]+$")) < 30 ~ stringr::str_extract(label, "[0-9]+$"), + module_name != "parms" & grepl("_age[0-9]+.", label) ~ stringr::str_extract(label, "(?<=_age?)[0-9]+"), + TRUE ~ NA + ), + label = dplyr::case_when( + # below will only work properly if there are age varying parameters without fleet names in it + module_name == "parms" & !grepl(paste(".", fleet_names, sep = "", collapse = "|"), tolower(label)) ~ label, + module_name == "parm.cons" & !grepl(paste("_", fleet_names, sep = "", collapse = "|"), tolower(label)) ~ label, + grepl(paste(".", fleet_names, "d[0-9]+", sep = "", collapse = "|"), tolower(label)) ~ stringr::str_replace(tolower(label), paste(".", fleet_names, "d[0-9]+", sep = "", collapse = "|"), ".d"), + grepl(paste(".", fleet_names, "[0-9]+$", sep = "", collapse = "|"), tolower(label)) ~ stringr::str_replace(tolower(label), paste(fleet_names, sep = "", collapse = "|"), ""), # "[0-9]+", + grepl(paste(".", fleet_names, "$", sep = "", collapse = "|"), tolower(label)) ~ stringr::str_replace(tolower(label), paste(".", fleet_names, sep = "", collapse = "|"), ""), + grepl(paste("_", fleet_names, "_", sep = "", collapse = "|"), tolower(label)) ~ stringr::str_replace(tolower(label), paste("_", fleet_names, sep = "", collapse = "|"), ""), + grepl(paste(".", fleet_names, ".d$", sep = "", collapse = "|"), tolower(label)) ~ stringr::str_replace(tolower(label), paste(".", fleet_names, sep = "", collapse = "|"), ""), + grepl(".Age[0-9]+.[a-z]+", label) ~ stringr::str_replace(label, ".Age[0-9]+.[a-z]+", ""), + grepl("[0-9]+$", label) ~ stringr::str_replace(label, "[0-9]+$", ""), + # !is.na(fleet) | !is.na(age) ~ stringr::str_replace(label, paste(c(paste(".", fleet_names, "[0-9]+", sep = ""), ".Age[0-9]+.[a-z]+", "[0-9]+$"), collapse = "|"), ""), + # as.numeric(stringr::str_extract(label, "[0-9]+$")) == 0 ~ label, + # as.numeric(stringr::str_extract(label, "[0-9]+$")) < 30 ~ stringr::str_remove(label, "[0-9]+$"), + TRUE ~ label + ), + # additional manipulation of label to remove age in parm.cons + label = dplyr::case_when( + module_name == "parm.cons" & grepl("_age[0-9]+.[a-z]+", label) ~ stringr::str_replace(label, "_age[0-9]+.[a-z]+", ""), + TRUE ~ label + ) + ) + } else if (any(grepl("[0-9]$", unique(df2$label)))) { + df2 <- df2 |> + dplyr::mutate( + fleet = NA, + # Number after fleet name is what? variable among df? + age = dplyr::case_when( + grepl("[0-9]+$", label) & stringr::str_extract(label, "[0-9]+$") < 30 ~ stringr::str_extract(label, "[0-9]+$"), + TRUE ~ NA + ), + # label_init = label, + label = dplyr::case_when( + as.numeric(stringr::str_extract(label, "[0-9]+$")) == 0 ~ label, + as.numeric(stringr::str_extract(label, "[0-9]+$")) < 30 ~ stringr::str_remove(label, "[0-9]+$"), + TRUE ~ label + ) + ) + } else { + df2 <- df2 |> + dplyr::mutate( + fleet = ifelse("age" %in% colnames(df2), fleet, NA), + age = ifelse("age" %in% colnames(df2), age, NA), + label = label, + module_name = names(extract) + ) + } + df2[setdiff(tolower(names(out_new)), tolower(names(df2)))] <- NA + out_list[[names(extract)]] <- df2 + } else { + cli::cli_alert_warning("Not compatible.") + } + } else { # vector only + df <- as.data.frame(extract) |> + tibble::rownames_to_column(var = "label") |> + tidyr::pivot_longer( + cols = -label, + names_to = "module_name", + values_to = "estimate" + ) + if (any(grepl("age", colnames(df)))) { + df <- df |> + tidyr::pivot_longer( + cols = -intersect(c(factors, errors), colnames(df)), + names_to = "age", + values_to = "estimate" + ) |> + dplyr::mutate( + label = names(extract[[1]]), + age = dplyr::case_when( + grepl(".[0-9]$", age) ~ stringr::str_extract(age, "[0-9]"), + grepl(".[0-9][0-9]$", age) ~ stringr::str_extract(age, "[0-9][0-9]"), + TRUE ~ NA + ), + module_name = names(extract) + ) + } + if (any(grepl(paste(fleet_names, collapse = "|"), df$label))) { + df <- df |> + dplyr::mutate( + fleet = dplyr::case_when( + grepl(paste(fleet_names, collapse = "|"), label) ~ stringr::str_extract(label, paste(fleet_names, collapse = "|")), + TRUE ~ NA + ), + label = dplyr::case_when( + is.na(fleet) ~ label, + TRUE ~ stringr::str_replace(label, paste(".", fleet_names, sep = "", collapse = "|"), "") + ) + ) + } + df[setdiff(tolower(names(out_new)), tolower(names(df)))] <- NA + out_list[[names(extract)]] <- df + } + } else if (is.list(extract[[1]])) { # list only + if (any(vapply(extract[[1]], is.matrix, FUN.VALUE = logical(1)))) { + extract_list <- list() + for (i in seq_along(extract[[1]])) { + if (is.vector(extract[[1]][[i]])) { + df <- as.data.frame(extract[[1]][i]) |> + tibble::rownames_to_column(var = "age") |> + tidyr::pivot_longer( + cols = -age, + values_to = "estimate", + names_to = "label" + ) |> + dplyr::mutate( + label = names(extract[[1]][i]), + # label_init = names(extract[[1]][i]), + fleet = dplyr::case_when( + grepl(paste(fleet_names, collapse = "|"), label) ~ stringr::str_extract(label, paste(fleet_names, collapse = "|")), + TRUE ~ NA + ), + module_name = names(extract), + label = dplyr::case_when( + grepl(paste(fleet_names, collapse = "|"), label) ~ stringr::str_replace(label, paste(".", fleet_names, sep = "", collapse = "|"), ""), + TRUE ~ label + ) + ) + df[setdiff(tolower(names(out_new)), tolower(names(df)))] <- NA + extract_list[[names(extract[[1]][i])]] <- df + } else { + df <- as.data.frame(extract[[1]][[i]]) |> + tibble::rownames_to_column(var = "year") + if (grepl("lcomp", names(extract[[1]][i]))) { + namesto <- "len_bins" + } else if (grepl("acomp", names(extract[[1]][i]))) { + namesto <- "age" + } else { + # Default + namesto <- "age" + } + df2 <- df |> + tidyr::pivot_longer( + cols = -year, + names_to = namesto, + values_to = "estimate" + ) |> + dplyr::mutate( + module_name = names(extract), + label = names(extract[[1]][i]), + # label_init = names(extract[[1]][i]), + fleet = dplyr::case_when( + grepl(paste(fleet_names, collapse = "|"), label) ~ stringr::str_extract(label, paste(fleet_names, collapse = "|")), + TRUE ~ NA + ), # stringr::str_extract(module_name, "(?<=\\.)\\w+(?=\\.)"), + label = dplyr::case_when( + is.na(fleet) ~ names(extract[[1]][i]), + TRUE ~ stringr::str_replace(label, paste(".", fleet_names, sep = "", collapse = "|"), "") + ) + ) # stringr::str_replace(module_name, "\\.[^.]+\\.", ".")) + df2[setdiff(tolower(names(out_new)), tolower(names(df2)))] <- NA + extract_list[[names(extract[[1]][i])]] <- df2 + } # close if statement + } # close for loop + new_df <- Reduce(rbind, extract_list) + out_list[[names(extract)]] <- new_df + } else if (any(sapply(extract[[1]], is.vector))) { # all must be a vector to work - so there must be conditions for dfs with a mix + df <- data.frame(extract[[1]]) + if (max(as.numeric(row.names(df))) < 1000) { + fac <- "age" + } else if (1000 < max(as.numeric(row.names(df))) & max(as.numeric(row.names(df))) < 2100) { + fac <- "year" + } else { + fac <- "nsim" + } + if (any(colnames(df) %in% c("age", "year"))) { + df <- df + } else { + if (fac == "year") { + df <- tibble::rowid_to_column(df, var = fac) |> + dplyr::mutate(year = as.character(year)) + } else if (fac == "age") { + df <- tibble::rowid_to_column(df, var = fac) |> + dplyr::mutate(age = as.character(age)) + } else if (fac == "nsim") { + df <- tibble::rowid_to_column(df, var = fac) |> + dplyr::mutate(nsim = as.character(nsim)) + } else { + cli::cli_alert_warning("Not compatible") + } + } + # # Check if any col names contain error then select + # if (any(grepl(paste0(errors, collapse = "|"), colnames(df)))) { + # error_cols <- grep(paste0(errors, ".", collapse = "|"), colnames(df)) + # } else { + # error_cols <- NULL + # } + if (length(intersect(colnames(df), c(factors, errors))) > 0) { + df2 <- df |> + tidyr::pivot_longer( + cols = -intersect(colnames(df), c(factors, errors)), + names_to = "label", + values_to = "estimate" + ) |> + dplyr::mutate(module_name = names(extract)) + } else { + df2 <- df |> + tidyr::pivot_longer( + cols = tidyselect::everything(), + names_to = "label", + values_to = "estimate" + ) |> + dplyr::mutate(module_name = names(extract)) + } + if (any(grepl(paste(fleet_names, collapse = "|"), tolower(unique(df2$label))))) { + if ("age" %in% colnames(df2)) { + df2 <- df2 + } else { + df2 <- df2 |> + dplyr::mutate(age = NA) + } + df2 <- df2 |> + dplyr::mutate( + label = tolower(label), + fleet = dplyr::case_when( + grepl(paste(fleet_names, collapse = "|"), label) ~ stringr::str_extract(label, paste(fleet_names, collapse = "|")), + # grepl(paste(fleet_names, collapse = "|"), label) ~ stringr::str_extract(ex, paste(fleet_names,collapse="|")), + TRUE ~ NA + ), + # Number after fleet name is what? variable among df? + age = dplyr::case_when( + is.na(as.numeric(age)) & grepl("_age[0-9]+_", label) ~ as.numeric(stringr::str_extract(label, "(?<=age:?)[0-9]+")), + is.na(as.numeric(age)) & grepl("[0-9]+$", label) ~ as.numeric(stringr::str_extract(label, "[0-9]+$")), # this is not age + TRUE ~ as.numeric(age) + ), + # area = dplyr::case_when(is.na(age) & grepl("[0-9]+$", label) ~ stringr::str_extract(label, "[0-9]+$"), # this is not age + # TRUE ~ NA), + # Uncomment when units gets added in + # units = dplyr::case_when( + # grepl(paste(units, collapse = "|"), label) ~ stringr::str_extract(label, paste(units, collapse = "|")), + # TRUE ~ NA + # ), + label = dplyr::case_when( + # grepl("_age[0-9]_", label) & grepl(paste("_", fleet_names, "[0-9]+", sep = "", collapse = "|"), label) ~ stringr::str_replace(label, paste("_age[0-9]+_", fleet_names, "[0-9]+", sep = "", collapse = "|"), ""), + # grepl("_age[0-9]_", label) & grepl(paste("_", fleet_names, sep = "", collapse = "|"), label) ~ stringr::str_replace(label, paste("_age[0-9]+_", fleet_names, sep = "", collapse = "|"), ""), + # grepl("_age[0-9]_", label) ~ stringr::str_replace(label, "_age[0-9]+_", ""), + # grepl(paste0(rep(fleet_names, times = length(units)), ".", units, collapse = "|"), label) ~ stringr::str_replace(label, paste0(".", rep(fleet_names, times = length(units)), ".", units, collapse = "|"), ""), + grepl(paste("_", fleet_names, "[0-9]+$", sep = "", collapse = "|"), label) ~ stringr::str_replace(label, paste("_", fleet_names, "[0-9]+$", sep = "", collapse = "|"), ""), + grepl(paste("_", fleet_names, sep = "", collapse = "|"), label) ~ stringr::str_replace(label, paste("_", fleet_names, sep = "", collapse = "|"), ""), + grepl(paste(".", fleet_names, "[0-9]+$", sep = "", collapse = "|"), label) ~ stringr::str_replace(label, paste(fleet_names, sep = "", collapse = "|"), ""), + grepl(paste(fleet_names, ".", sep = "", collapse = "|"), label) ~ stringr::str_replace(label, paste(fleet_names, ".", sep = "", collapse = "|"), ""), + grepl(paste(".", fleet_names, "d[0-9]+$", sep = "", collapse = "|"), label) ~ stringr::str_replace(label, paste(".", fleet_names, "d[0-9]+$", sep = "", collapse = "|"), ""), + grepl(paste(".", fleet_names, sep = "", collapse = "|"), label) ~ stringr::str_replace(label, paste(".", fleet_names, sep = "", collapse = "|"), ""), + grepl(paste(fleet_names, "[0-9]+$", collapse = "|"), label) ~ stringr::str_replace(label, "[0-9]+$", ""), + TRUE ~ label + ) + ) + } else if (any(grepl("[0-9]$", unique(df2$label)))) { + df2 <- df2 |> + dplyr::mutate( + fleet = NA, + # Number after fleet name is what? variable among df? + age = dplyr::case_when( + grepl("[0-9]+$", label) & stringr::str_extract(label, "[0-9]+$") < 30 ~ stringr::str_extract(label, "[0-9]+$"), + TRUE ~ NA + ), + # label_init = label, + label = dplyr::case_when( + as.numeric(stringr::str_extract(label, "[0-9]+$")) == 0 ~ label, + # issue here that stocks with ages > 29 will not be extracted - maybe add condition if F, t or other preceeeds the number then don't extract? + as.numeric(stringr::str_extract(label, "[0-9]+$")) < 30 ~ stringr::str_remove(label, "[0-9]+$"), + TRUE ~ label + ) + ) + } else { + df2 <- df2 |> + dplyr::mutate( + fleet = ifelse(any(colnames(df2) %in% c("fleet")), fleet, NA), + age = ifelse(any(colnames(df2) %in% c("age")), fleet, NA), + label = label, + module_name = names(extract) + ) + } + # Move error into column + if (any(grepl(paste0("^", errors, "\\.", collapse = "|"), unique(df2$label)))) { + # Pivot wider only the cv labels and align with their counter part estimate label + error_data <- df2 |> + dplyr::filter(stringr::str_detect(label, paste0("^", errors, ".", collapse = "|"))) |> + dplyr::mutate(match_key = stringr::str_remove(label, paste0("^", errors, ".", collapse = "|"))) |> + dplyr::mutate(uncertainty_label = stringr::str_extract(label, paste0(errors, collapse = "|"))) |> + dplyr::select(year, fleet, match_key, uncertainty = estimate, uncertainty_label) + # filter out error labels + df2_filtered <- df2 |> + dplyr::filter(!stringr::str_detect(label, paste0("^", errors, collapse = "|"))) |> + dplyr::mutate(match_key = stringr::str_extract(label, "^[A-Za-z]+")) + # Join the errors to the final df + df2 <- df2_filtered |> + dplyr::left_join(error_data, by = c("year", "fleet", "match_key")) |> + dplyr::select(-match_key) + } + df2[setdiff(tolower(names(out_new)), tolower(names(df2)))] <- NA + out_list[[names(extract)]] <- df2 + } else { + cli::cli_alert_warning("Not compatible.") + } + } else if (is.matrix(extract[[1]])) { # matrix only + df <- as.data.frame(extract[[1]]) |> + tibble::rownames_to_column(var = "year") + if (grepl("length", names(extract))) { + namesto <- "len_bins" + } else if (grepl("age", names(extract))) { + namesto <- "age" + } else { + # Default + namesto <- "age" + } + df2 <- df |> + tidyr::pivot_longer( + cols = -year, + names_to = namesto, + values_to = "estimate" + ) |> + dplyr::mutate( + module_name = names(extract), + label = names(extract), + # label_init = names(extract[[1]][i]), + fleet = dplyr::case_when( + grepl(paste(fleet_names, collapse = "|"), label) ~ stringr::str_extract(label, paste(fleet_names, collapse = "|")), + TRUE ~ NA + ), # stringr::str_extract(module_name, "(?<=\\.)\\w+(?=\\.)"), + label = dplyr::case_when( + is.na(fleet) ~ names(extract), + TRUE ~ stringr::str_replace(label, paste(".", fleet_names, sep = "", collapse = "|"), "") + ) + ) # stringr::str_replace(module_name, "\\.[^.]+\\.", ".")) + df2[setdiff(tolower(names(out_new)), tolower(names(df2)))] <- NA + out_list[[names(extract)]] <- df2 + } else { + cli::cli_alert_warning(paste(names(extract), " not compatible.", sep = "")) + } # close if statement + } # close loop over objects listed in dat file + + # Place out_list into a single data frame + # VIRG, INIT, TIME, FORE + out_new <- Reduce(rbind, out_list) |> + # Add era as factor into BAM conout + dplyr::mutate( + # TODO: replace all periods with underscore if naming convention is different + label = tolower(label) + ) + if (model == "bam") { + out_new <- dplyr::mutate( + out_new, + era = dplyr::case_when( + year < dat$parms$styr ~ "init", + year >= dat$parms$styr & year <= dat$parms$endyr ~ "time", + year > dat$parms$endyr ~ "fore", + TRUE ~ NA + ) + ) + } + return(out_new) +} diff --git a/R/conout_rceattle.R b/R/conout_rceattle.R new file mode 100644 index 00000000..686a59a0 --- /dev/null +++ b/R/conout_rceattle.R @@ -0,0 +1,486 @@ +conout_rceattle <- function( + file, + out_new, + fleet_names = NULL +) { + # Want to extract and set values from: + # quantities, sdrep, and estimated_params + # take similar approach to SS3 when only some keywords were converted + # can late take approach like BAM? + # TODO: Do we want users to input the saved file or already loaded into the R environment? + if (is.character(file)) { + # Anchored and case-insensitive: saveRDS() output is conventionally named + # either .rds or .RDS, and the real assessment files this targets use the + # latter. The unanchored, case-sensitive form rejected them. + if (!grepl("\\.rds$", file, ignore.case = TRUE)) { + cli::cli_abort("File must be in an .rds format otherwise load data into your environment and run `convert_output()` using the loaded data.") + } + dat <- readRDS(file) + } else { + dat <- file + } + + # The standardized output describes one stock and has no species dimension, + # but CEATTLE is a multispecies model. A multispecies fit's `sdrep` holds + # nspp * nyrs values per label, which fails the `n == length(styr:projyr)` + # test used to attach years below, so every biomass / spawning biomass / + # recruitment value would silently come back with `year = NA`. Refuse + # instead: a converted file that quietly merges two stocks is worse than no + # converted file. + # `[[` rather than `$`: `$` partial-matches, so a renamed element would + # return something else and skip the refusal. + if (!"data_list" %in% names(dat)) { + cli::cli_abort(c( + "Rceattle fit has no {.field data_list} element.", + i = "The catch, index and composition data are read from it." + )) + } + nspp <- dat[["data_list"]][["nspp"]] + if (is.null(nspp)) { + cli::cli_abort(c( + "Rceattle fit does not report {.field nspp}, so its species count is unknown.", + i = "The standardized output has no species dimension and must not merge stocks." + )) + } + if (nspp > 1) { + cli::cli_abort(c( + "Rceattle model has {nspp} species, and the standardized output has no species dimension.", + i = "Subset the fit to a single species before converting." + )) + } + + # Extract or use fleet names + if (is.null(fleet_names)) { + fleet_names <- names(dat$estimated_params$index_log_q) + } + + # Output fleet names in console + cli::cli_alert_info("Identified fleet names:") + cli::cli_alert_info("{fleet_names}") + # Create list for morphed dfs to go into (for rbind later) + out_list <- list() + + factors <- c("year", "fleet", "fleet_name", "age", "sex", "area", "seas", "season", "time", "era", "subseas", "subseason", "platoon", "platoo", "growth_pattern", "gp", "nsim", "age_a") + errors <- c("StdDev", "sd", "se", "SE", "cv", "CV", "stddev") + # units <- c("mt", "lbs", "eggs") + + ##### Loop #### + # Select the modules by name rather than by position. An Rceattle fit's + # element list depends on how it was fitted -- `phase = TRUE` adds + # `.conv_phase` and `phase_params`, and `getsd = FALSE` drops `sdrep` -- so a + # fixed offset selects different modules for different fits of the same + # model. Under `phase = TRUE` the positional form dropped `data_list` and + # passed `obj` to the generic vector handler below, which aborts with + # "attempt to select less than one element in OneIndex". + # + # `sdrep` carries every derived time series, so without it the output holds + # only the input data. Say so rather than returning a table whose biomass + # and recruitment are simply absent. + if (!"sdrep" %in% names(dat)) { + cli::cli_warn(c( + "Rceattle fit has no {.field sdrep}, so the converted output has no biomass, spawning biomass or recruitment.", + i = "Refit with {.code fit_control(getsd = TRUE)} to standardize the derived time series." + )) + } + for (module_name in intersect(c("sdrep", "data_list", "quantities"), names(dat))) { + extract <- dat[module_name] + cli::cli_alert_info("Processing {module_name}") + if (module_name == "sdrep") { + ##### sdrep #### + # this does not include all elements from sdrep list + df <- extract[[1]] + # Extract values from sdrep element in listdrep + values <- data.frame( + label = names(extract[[1]]$value), + estimate = extract[[1]]$value, + uncertainty = extract[[1]]$sd, + uncertainty_label = "sd" + ) + values_count <- values |> + dplyr::group_by(label) |> + dplyr::count() + values <- values |> + dplyr::left_join( + { + values |> + dplyr::group_by(label) |> + dplyr::count() + }, + by = "label" + ) + # make year column + year_col <- rep( + dat[["data_list"]]$styr:dat[["data_list"]]$projyr, + length(unique( + dplyr::filter(values_count, n == length(dat[["data_list"]]$styr:dat[["data_list"]]$projyr)) |> + dplyr::pull(label) + )) + ) + + df2 <- values |> + dplyr::filter(n == length(dat[["data_list"]]$styr:dat[["data_list"]]$projyr)) |> + dplyr::mutate(year = year_col) + + df2 <- values |> + dplyr::filter( + n != length(dat[["data_list"]]$styr:dat[["data_list"]]$projyr) + ) |> + dplyr::mutate(year = NA) |> + rbind(df2) + + # Extract parameter values ts + # The standard errors of the fixed effects are the square root of the + # diagonal of cov.fixed, in the same order as par.fixed. + has_cov_fixed <- !is.null(extract[[1]]$cov.fixed) + par_fixes <- data.frame( + label = names(extract[[1]]$par.fixed), + estimate = extract[[1]]$par.fixed, + uncertainty = if (has_cov_fixed) sqrt(diag(extract[[1]]$cov.fixed)) else NA_real_, + uncertainty_label = if (has_cov_fixed) "sd" else NA_character_ + ) + # Random effects, such as rec_dev under random_rec = TRUE, are in + # par.random rather than par.fixed. Their variances are in + # diag.cov.random. + if (length(extract[[1]]$par.random) > 0) { + has_cov_random <- !is.null(extract[[1]]$diag.cov.random) + par_fixes <- rbind( + par_fixes, + data.frame( + label = names(extract[[1]]$par.random), + estimate = extract[[1]]$par.random, + uncertainty = if (has_cov_random) sqrt(extract[[1]]$diag.cov.random) else NA_real_, + uncertainty_label = if (has_cov_random) "sd" else NA_character_ + ) + ) + } + par_fixes_count <- par_fixes |> + dplyr::group_by(label) |> + dplyr::count() + par_fixes <- par_fixes |> + dplyr::left_join( + par_fixes_count, + by = "label" + ) + + year_col_par_fix <- rep( + dat[["data_list"]]$styr:dat[["data_list"]]$endyr, + length(unique( + dplyr::filter(par_fixes_count, n == length(dat[["data_list"]]$styr:dat[["data_list"]]$endyr)) |> + dplyr::pull(label) + )) + ) + + df3 <- par_fixes |> + dplyr::filter(n == length(dat[["data_list"]]$styr:dat[["data_list"]]$endyr)) |> + dplyr::mutate(year = year_col_par_fix) + df3 <- par_fixes |> + dplyr::filter( + n != length(dat[["data_list"]]$styr:dat[["data_list"]]$endyr) + ) |> + dplyr::mutate(year = NA) |> + rbind(df3) + # not sure how pop_scalar is indexed + # not sure how log_index_hat is indexes + # Did not use r_sd for the error in rec bc used it from the other element in the list + + df4 <- rbind(df2, df3) |> + dplyr::select(-n) |> + dplyr::mutate( + module_name = module_name + ) + + df4[setdiff(tolower(names(out_new)), tolower(names(df4)))] <- NA + out_list[[names(extract)]] <- df4 + } else if (module_name == "data_list") { + ###### data.list #### + # Only extract specific quantity needs + # comp_data?, index_data, catch_data, weight, Ftarget, Flimit + data_list_list <- list() + + ####### Indices #### + # Extract index_data + df_index <- extract[[1]]$index_data |> + # rename all columns to lower case to match standard + dplyr::rename_with(tolower) |> + dplyr::rename( + fleet = fleet_name, + indices_observed = observation, + block = selectivity_block, + uncertainty = log_sd + ) |> + dplyr::mutate( + # label = "index_observed", + uncertainty_label = "log_sd", + indices_predicted = dat$quantities$index_hat + ) |> + # any_of(): `Q_block` is deprecated in Rceattle and no longer written + # to `index_data`, so naming it directly fails on a current fit while + # still needing to be dropped from an older one. + dplyr::select(-dplyr::any_of(c("fleet_code", "q_block"))) + cli::cli_alert_info("'Selectivity_block' values located in 'block' columns.") + + # check if species > 1 + if (length(unique(df_index$species)) > 1) { + cli::cli_abort("Not currently compatible for multispecies.") + } else { + df_index <- df_index |> + dplyr::select(-species) + } + + # expand df long to have obs and pred in same column with label + df_index_long <- df_index |> + tidyr::pivot_longer( + cols = c(indices_observed, indices_predicted), + names_to = "label", + values_to = "estimate" + ) |> + dplyr::mutate( + module_name = names(extract), + # era = dplyr::if_else( + # year > dat$data_list$endyr, + # "fore", + # NA_character_ + # ) + label = stringr::str_replace_all(label, "indices", "index") + ) + + df_index_long[setdiff(tolower(names(out_new)), tolower(names(df_index_long)))] <- NA + data_list_list[["index_data"]] <- df_index_long + + ####### Catch indexing #### + # Extract catch_data and align with log_index_hat and catch_h + # Modify sdrep in outlist to include index + df_catch <- extract[[1]]$catch_data |> + # dplyr::filter(!is.na(Catch)) |> + dplyr::rename_with(tolower) |> + dplyr::mutate( + module_name = names(extract), + # Set the era here from the year, as the index and composition + # frames do, so the frame is complete where it is built. The mutate + # at the end of the branch recomputes it the same way. + era = dplyr::if_else( + year > dat$data_list$endyr, + "fore", + "time" + ), + catch_h = dat$quantities$catch_hat, + # TODO: follow up on this quantity + # log_index_hat = dat$quantities$log_index_hat + uncertainty_label = "log_sd" + ) |> + dplyr::rename( + catch_predicted = catch_h, + fleet = fleet_name, + block = selectivity_block, + uncertainty = log_sd + ) |> + tidyr::pivot_longer( + cols = c(catch, catch_predicted), + names_to = "label", + values_to = "estimate" + ) |> + dplyr::select(-c(fleet_code, species)) + + # Remove fleet names if do not match object + # if (unique(df_catch$fleet) %notin% fleet_names) { + # df_catch <- df_catch |> + # dplyr::mutate(fleet = NA) + # } + + if (length(unique(df_catch$month)) == 1) { + df_catch$month <- NA + } + df_catch[setdiff(tolower(names(out_new)), tolower(names(df_catch)))] <- NA + data_list_list[["catch_data"]] <- df_catch + + ####### Comp indexing #### + df_comp_obs <- dat$data_list$comp_data |> + dplyr::rename_with(tolower) |> + dplyr::mutate( + label = "index_observed" + ) + + indexing_vars_cols <- colnames(df_comp_obs)[!grepl("comp", colnames(df_comp_obs))] + + # `age_hat` holds one row per row of `comp_data`, in the same order, so + # it binds column-wise. cross_join() paired every observation with the + # whole prediction matrix instead, which is a Cartesian product: on the + # GOAatf fixture it returned the 2,478 correct predictions 59 times + # over, once per row of comp_data, for 146,202 in all. + age_hat <- as.data.frame(dat$quantities$age_hat) + names(age_hat) <- paste0("agehat_", seq_len(ncol(age_hat))) + df_comp_pred <- dplyr::select(df_comp_obs, dplyr::all_of(indexing_vars_cols)) |> + cbind(age_hat) |> + tidyr::pivot_longer( + cols = -dplyr::all_of(indexing_vars_cols), + names_to = "age", + values_to = "estimate" + ) |> + # removes the 0 so assuming there will be no recorded zero catch but Rceattle reports ages up to 117 + dplyr::filter(estimate != 0) |> + dplyr::mutate( + label = "composition_predicted", + # NOTE: the below age mutate slows down code + age = stringr::str_replace(age, "agehat_", "") + ) + + # Finish adjusting comp_obs + # pivot obs data + df_comp_obs <- df_comp_obs |> + tidyr::pivot_longer( + cols = -dplyr::all_of(indexing_vars_cols), + names_to = "age", + values_to = "estimate" + ) |> + dplyr::filter(!is.na(estimate)) |> + dplyr::mutate( + label = "composition_observed", + # NOTE: the below age mutate slows down code + age = stringr::str_replace(age, "comp_", "") + ) + + df_comp <- rbind(df_comp_obs, df_comp_pred) |> + # Match the index and catch frames: the standard names the fleet + # `fleet`, carries no `fleet_name` or `species`, and every row states + # which module it came from. + dplyr::rename(fleet = fleet_name) |> + dplyr::mutate(module_name = names(extract)) |> + dplyr::select(-dplyr::any_of("species")) |> + # TODO: do I need to filter sample size by <3 for confidentiality or does this not apply? + dplyr::select(-c(age0_length1, fleet_code, sample_size)) + + df_comp[setdiff(tolower(names(out_new)), tolower(names(df_comp)))] <- NA + data_list_list[["comp_data"]] <- df_comp + + # final df for data_list module + # rbind() rather than bind_rows(): every frame has already been padded + # to the standard column set above, so rbind() succeeds and keeps the + # column contract -- it aborts on a frame carrying an extra column, + # where bind_rows() would silently widen the output. + new_df <- Reduce(rbind, data_list_list) + out_list[[names(extract)]] <- new_df + } else if (module_name == "quantities") { + ###### quantities #### + # Only selectivity and natural mortality at age for now. Both are + # [fleet or species, sex, age, year] arrays. The age dimension is the + # bin index, so the age itself is offset by minage. + ages <- dat[["data_list"]][["minage"]] - 1 + + seq_len(dat[["data_list"]][["nages"]]) + nsex <- dat[["data_list"]][["nsex"]] + # Rceattle stores sex 1 as females, or both sexes when nsex = 1. + sex_names <- if (nsex == 1) NA_character_ else c("female", "male") + quantities_list <- list() + + if ("sel_at_age" %in% names(extract[[1]])) { + sel <- extract[[1]][["sel_at_age"]][, seq_len(nsex), seq_along(ages), , drop = FALSE] + df_sel <- expand.grid( + fleet = dimnames(sel)[[1]], + sex = sex_names, + age = ages, + year = as.numeric(dimnames(sel)[[4]]), + stringsAsFactors = FALSE + ) |> + dplyr::mutate( + estimate = as.vector(sel), + label = "sel_at_age" + ) + df_sel[setdiff(tolower(names(out_new)), tolower(names(df_sel)))] <- NA + quantities_list[["sel_at_age"]] <- df_sel + } + + if ("M_at_age" %in% names(extract[[1]])) { + m_at_age <- extract[[1]][["M_at_age"]][1, seq_len(nsex), seq_along(ages), , drop = FALSE] + df_m <- expand.grid( + sex = sex_names, + age = ages, + year = as.numeric(dimnames(m_at_age)[[4]]), + stringsAsFactors = FALSE + ) |> + dplyr::mutate( + estimate = as.vector(m_at_age), + label = "m_at_age" + ) + df_m[setdiff(tolower(names(out_new)), tolower(names(df_m)))] <- NA + quantities_list[["m_at_age"]] <- df_m + } + + if (length(quantities_list) > 0) { + out_list[[names(extract)]] <- Reduce(rbind, quantities_list) |> + dplyr::mutate( + module_name = names(extract), + age = as.character(age) + ) + } + } else if (is.list(extract[[1]])) { # indicates vector and list + ##### remaining lmnts #### + if (any(vapply(extract[[1]], is.matrix, FUN.VALUE = logical(1)))) { + ############################################################## + df <- extract[[1]] |> + expand_element(fleet_names = fleet_names) |> + dplyr::mutate( + module_name = module_name + ) |> + suppressWarnings() + df[setdiff(tolower(names(out_new)), tolower(names(df)))] <- NA + out_list[[names(extract)]] <- df + } else if (any(vapply(extract[[1]], is.vector, FUN.VALUE = logical(1)))) { # all must be a vector to work - so there must be conditions for dfs with a mix + extract_list <- list() + # mod_name1 <- names(extract) + for (i in seq_along(extract[[1]])) { + # need to add condition or something in expand_element to account for data thats formatted differently but is still a list i.e. p=9 + if (is.list(extract[[1]][i][[1]])) { + # mod_name2 <- glue::glue("{module_name}_{names(extract[[1]][i])}") + # comment out message once finished development + cli::cli_alert_info("Processing {names(extract[[1]][i])}") + + df <- extract[[1]][i][[1]] |> + expand_element(fleet_names = fleet_names) |> + dplyr::mutate( + module_name = module_name # mod_name2 + ) # |> + # suppressWarnings() + } else { + df <- data.frame( + estimate = extract[[1]][[i]][[1]], + label = names(extract[[1]][i]), + module_name = module_name + ) + } + df[setdiff(tolower(names(out_new)), tolower(names(df)))] <- NA + # remove quantities inserted from other steps + df <- df |> + dplyr::filter( + label %notin% c("index_hat", "catch_h") + ) + extract_list[[names(extract[[1]][i])]] <- df + } + new_df <- Reduce(rbind, extract_list) + out_list[[names(extract)]] <- new_df + } else { + cli::cli_alert_warning("Not compatible.") + } + } else { + cli::cli_alert_warning("Not compatible yet.") + } + # } else if (is.list(extract[[1]])) { # list only + # } else if (is.matrix(extract[[1]])) { # matrix only + # } else { + # cli::cli_alert_warning(paste(names(extract), " not compatible.", sep = "")) + # } # close if statement + } # close loop over objects listed in dat file + # Finish out df + # rbind() as above, so a module that has drifted from the standard column + # set aborts here rather than widening the output. + Reduce(rbind, out_list) |> + # Add era as factor into BAM conout + dplyr::mutate( + # TODO: replace all periods with underscore if naming convention is different + label = tolower(label), + # set era + era = dplyr::if_else( + year > dat$data_list$endyr, + "fore", + "time" + ) + ) +} diff --git a/R/conout_ss3.R b/R/conout_ss3.R new file mode 100644 index 00000000..3d8eb083 --- /dev/null +++ b/R/conout_ss3.R @@ -0,0 +1,1265 @@ +conout_ss3 <- function( + file, + out_new, + fleet_names = NULL +) { + if (is.character(file)) { + # report.sso file + # read SS3 report file + dat <- utils::read.table( + file = file, + col.names = 1:get_ncol(file), + fill = TRUE, + quote = "", + colClasses = "character", # reads all data as characters + nrows = -1, + comment.char = "", + blank.lines.skip = FALSE + ) + # Check SS3 model version + vers <- stringr::str_extract(dat[1, 1], "[0-9].[0-9][0-9].[0-9][0-9]") # .[0-9] + if (vers < 3.3) { + cli::cli_abort("This function in its current state can not process the data.") + } + + # Extract fleet names + if (is.null(fleet_names)) { + fleet_names <- SS3_extract_fleet(dat, vers) + } + # Output fleet names in console + cli::cli_alert_info("Identified fleet names:") + cli::cli_alert_info("{fleet_names}") + + # Estimated and focal parameters to put into reformatted output df - naming conventions from SS3 + # Extract keywords from ss3 file + # Find row where keywords start + keywords_start_row <- which(apply(dat, 1, function(row) any(grepl("#_KeyWords_of_tables_available_in_report_sso", row)))) + # Extract this first chunk of keywords to identify the first reported df - most likely DEFINITIONS + first_blank_after <- which(apply(dat, 1, function(row) all(is.na(row) | row == "")) & (seq_len(nrow(dat)) > keywords_start_row))[1] + rows <- c(keywords_start_row, first_blank_after) + # Extract the metric using the rows from above as a guide and clean up empty columns + keyword_1 <- dat[rows[1]:(rows[2] - 1), ] |> + replace_empty_with_na_all() + keyword_1 <- Filter(function(x) !all(is.na(x)), keyword_1)[-c(1:3), ] + colnames(keyword_1) <- c("output", "keyword", "output_order") + keyword_1 <- keyword_1 |> + dplyr::mutate(output_order = as.numeric(stringr::str_extract(output_order, "\\d+$"))) |> + dplyr::filter(output_order == 1) |> + dplyr::pull(keyword) + # identify first reported keyword + keywords_end_row <- which(apply(dat, 1, function(row) any(grepl(keyword_1, row))))[2] - 12 # 12 rows behind is the last entry for keywords + # always extract the second entry bc the first is just in the list of keywords + + keywords <- dat[keywords_start_row:keywords_end_row, ][-c(1:3), c(1:3)] |> + replace_empty_with_na_all() + keywords <- Filter(function(x) !all(is.na(x)), keywords) + colnames(keywords) <- c("output", "keyword", "output_order") + param_names <- keywords |> + dplyr::mutate(output_order = as.numeric(stringr::str_extract(output_order, "\\d+$"))) |> + dplyr::filter(output == "Y") |> + dplyr::pull(keyword) + + # Group parameters base on table pattern + std <- c( + "DERIVED_QUANTITIES", + "MGparm_By_Year_after_adjustments", + "CATCH", + "SPAWN_RECRUIT", + "TIME_SERIES", + "DISCARD_OUTPUT", + "INDEX_2", + "FIT_LEN_COMPS", + "FIT_AGE_COMPS", + "FIT_SIZE_COMPS", + "SELEX_database", + "Growth_Parameters", + "Kobe_Plot" + ) + std2 <- c("OVERALL_COMPS") + cha <- c("Dynamic_Bzero") + rand <- c( + "Input_Variance_Adjustment", + "SPR_SERIES", + "selparm(Size)_By_Year_after_adjustments", + "selparm(Age)_By_Year_after_adjustments", + "BIOLOGY", + "SPR/YPR_Profile", + "Biology_at_age_in_endyr", + "SPAWN_RECR_CURVE", + "PARAMETERS" + ) + info <- c( + "LIKELIHOOD", + "DEFINITIONS" + ) + aa.al <- c( + "BIOMASS_AT_AGE", + "BIOMASS_AT_LENGTH", + "DISCARD_AT_AGE", + "CATCH_AT_AGE", + "F_AT_AGE", + "MEAN_SIZE_TIMESERIES", + "NUMBERS_AT_AGE", + "NUMBERS_AT_LENGTH", + "AGE_SELEX", + "LEN_SELEX", + "MEAN_BODY_WT(Begin)", + "Natural_Mortality" + ) + nn <- c( + "MORPH_INDEXING", + "EXPLOITATION", + "DISCARD_SPECIFICATION", + "INDEX_1", + "MEAN_BODY_WT_OUTPUT" + ) + # Intentionally left empty + single_val <- c() + } else { + # r4ss::ss_output + dat <- file + # Extract fleet names + if (is.null(fleet_names)) { + fleet_names <- dat$FleetNames + } + # Output fleet names in console + cli::cli_alert_info("Identified fleet names:") + cli::cli_alert_info("{fleet_names}") + + # Extract start year and end year + start_year <- file$startyr + end_year <- file$endyr + + param_names <- names(dat) + + std <- c( + "recruit", # STD + "exploitation", # STD + "catch", # STD + "timeseries", # STD + "discard", # STD + "kobe", # maybe STD + "cpue", # STD + "derived_quants", # STD + "Dynamic_Bzero", # STD + "len_comp_fit_table", # STD + "age_comp_fit_table" # STD + ) + rand <- c( + "SPAWN_RECRUIT_CURVE", # RAND + "sprseries", # RAND + "parameters" # RAND + # "equil_yeild", # SKIP FOR NOW - RAND + ) + aa.al <- c( + "sizeselex", # AA.AL + "ageselex", # AA.AL + "Natural_Mortality", # AA.AL + "fatage", # AA.AL + "natage", # AA.AL + "batage", # AA.AL + "natlen", # AA.AL + "batlen", # AA.AL + "discard_at_age", # AA.AL + "catage", # AA.AL + "Z_at_age", # AA.AL - DO WE NEED BOTH? THIS AND Z_BY_AREA + "M_at_age", # AA.AL - DO WE NEED BOTH? THIS AND M_BY_AREA + "Z_by_area", # AA.AL + "M_by_area" # AA.AL + ) + # "growth_series" # ? UNSURE THIS IS NULL IN EXAMPLE + # "mngwt" # ??? + single_val <- c( + "sprtarg", # single value + "btarg", # single value + "SBzero" # SINGLE VALUE + ) + # ntentionally empty + std2 <- c() + cha <- c() + info <- c() + } + + # Loop for all identified parameters to extract for plotting and use + # Create list of parameters that were not found in the output file + # 1,4,10,17,19,20,22,32,37 + factors <- c( + "era", "year", "fleet", + "fleet_name", "age", "sex", + "area", "seas", "season", + "time", "era", "subseas", + "subseason", "platoon", "platoo", + "growth_pattern", "gp", "month", + "like", "morph", "bio_pattern", + "settlement", "birthseas", "count", + "kind" + ) + + errors <- c( + "StdDev", "sd", "std", "stddev", + "se", "SE", + "cv", "CV" + # "dev" # not included bc this is dev in model, not uncertainty of the value + ) + + miss_parms <- c() + out_list <- list() + #### SS3 loop #### + for (i in seq_along(param_names)) { + # Processing data frame + parm_sel <- param_names[i] + if (parm_sel %in% c(std, std2, cha, rand, info, aa.al, single_val)) { + cli::cli_alert(glue::glue("Processing {parm_sel}")) # Remove [{i}] + if (is.character(file)) { + extract <- SS3_extract_df(dat, parm_sel) + } else { + extract <- file[[parm_sel]] + } + + if (!is.data.frame(extract)) { + if (is.numeric(extract)) { + df <- data.frame( + label = parm_sel, + module_name = parm_sel, + estimate = extract[[1]] + ) + df[setdiff(tolower(names(out_new)), tolower(names(df)))] <- NA + out_list[[parm_sel]] <- df + } else { + miss_parms <- c(miss_parms, parm_sel) + cli::cli_alert(glue::glue("Skipped {parm_sel}")) + next + } + } else { + ##### STD #### + # 1,4,10,17,19,36 + if (parm_sel %in% std) { + if (is.character(file)) { + # remove first row - naming + df1 <- extract[-1, ] + # Find first row without NAs = headers + # temp fix for catch df - I have only seen this issue for Hake example + if (any(is.na(df1[1, ])) & parm_sel == "CATCH") { + df1 <- df1[-1, ] + cols_to_keep <- which(sapply(df1, function(x) !all(is.na(x)))) + df1 <- df1 |> dplyr::select(dplyr::all_of(c(names(cols_to_keep)))) + df2 <- df1 + } else { + df2 <- df1[stats::complete.cases(df1), ] + } + if (any(c("#") %in% df2[, 1])) { + full_row <- which(apply(df1, 1, function(row) is.na(row) | row == " " | row == "-" | row == "#"))[1] + df1 <- df1[-full_row[1], ] + df1 <- Filter(function(x) !all(is.na(x)), df1) + df2 <- df1[stats::complete.cases(df1), ] + } + # identify first row + row <- df2[1, ] + # find row number that matches 'row' + rownum <- row_match(as.vector(row), df1) + # make row the header names for first df + colnames(df1) <- row + # Subset data frame + df3 <- df1[-c(1:rownum), ] + colnames(df3) <- tolower(row) + } else { + # from 4rss output + df3 <- extract + colnames(df3) <- tolower(colnames(df3)) + # ID any column names that are fleets (exploitation module in r4ss) + if (any(tolower(fleet_names) %in% colnames(df3))) { + for (i in intersect(tolower(fleet_names), colnames(df3))) { + col_name <- glue::glue("exploitation_{i}") + df3 <- df3 |> + dplyr::rename(!!col_name := i) + } + } + } + # Remove any leftover NA columns if still present + NA_cols <- which(sapply(df3, function(x) all(is.na(x)))) + if (length(NA_cols) > 0) df3 <- df3[, -NA_cols] + # Remove suprper + use from df + if (any(grepl("suprper|use", colnames(df3)))) { + df3 <- df3 |> + dplyr::select(-tidyselect::any_of(c("suprper", "use"))) + } + # Reformat data frame + if (any(colnames(df3) %in% c("Yr", "yr"))) { + df3 <- df3 |> + dplyr::rename(year = yr) + } + if ("label" %in% colnames(df3)) { + if (any(grepl("_[0-9]+$", df3$label))) { + df4 <- df3 |> + dplyr::mutate( + year = stringr::str_extract(label, "[0-9]+$"), + label = stringr::str_remove(label, "_[0-9]+$"), + # Add factors consistent with other else + area = NA, + sex = NA, + growth_pattern = NA, + fleet = NA + ) # need to remove the multiple error one + } + } else if (any(colnames(df3) %in% c(factors, errors))) { + # Keeping check here if case arises that there is a similar situation to the error + # aka there are multiple columns containing the string and they are not selected properly + + if ("sexes" %in% colnames(df3)) { + df3 <- df3 |> + # add in case if sexes is present and add sex as na if so + dplyr::mutate(sex = if (any(grepl("^sexes$", colnames(df3)))) sexes else NA) |> + dplyr::select(-sexes) + } else { + df3 <- dplyr::mutate(df3, sex = NA) + } + + # Identify which errors were identified in a column & rename + err_col_id <- colnames(df3)[grepl(paste0(errors, "$", collapse = "|"), colnames(df3))] + # rename error column + if (length(err_col_id) > 0) { + uncert_name <- stringr::str_extract(err_col_id, paste0(errors, collapse = "|")) + df3 <- df3 |> + dplyr::rename(!!uncert_name := err_col_id) + } + df4 <- df3 |> + tidyr::pivot_longer( + !tidyselect::any_of(c(factors, errors)), + names_to = "label", + values_to = "estimate" + ) |> # , colnames(dplyr::select(df3, tidyselect::matches(errors))) + dplyr::mutate( + fleet = if ("fleet" %notin% colnames(df3)) { + dplyr::case_when( + # "fleet" %in% colnames(.data) ~ fleet, + grepl(paste0(tolower(fleet_names), collapse = "|"), label) ~ stringr::str_extract(label, paste(tolower(fleet_names), collapse = "|")), + grepl(":_[0-9]$", label) ~ stringr::str_extract(label, "(?<=_)[0-9]+"), + grepl(":_[0-9][0-9]$", label) ~ stringr::str_extract(label, "(?<=_)[0-9][0-9]+"), + TRUE ~ NA + ) + } else if ("fleet_name" %in% colnames(df3)) { + fleet_name + } else { + fleet + }, + area = if ("area" %notin% colnames(df3)) { + dplyr::case_when( + grepl("?_area_[0-9]_?", label) ~ stringr::str_extract(label, "(?<=area_)[0-9]+"), + grepl("_[0-9]_", label) ~ stringr::str_extract(label, "(?<=_)[0-9]+"), + grepl(":_[0-9]$", label) ~ stringr::str_extract(label, "(?<=_)[0-9]+"), + grepl(":_[0-9][0-9]$", label) ~ stringr::str_extract(label, "(?<=_)[0-9][0-9]+"), + TRUE ~ NA + ) + } else { + area + }, + sex = if ("sex" %notin% colnames(df3)) { + dplyr::case_when( + grepl("_fem_", label) ~ "female", + grepl("_mal_", label) ~ "male", + grepl("_sx:1$", label) ~ "female", + grepl("_sx:2$", label) ~ "male", + grepl("_sx:1_", label) ~ "female", + grepl("_sx:2_", label) ~ "male", + TRUE ~ NA + ) + } else { + dplyr::case_when( + sex == 1 ~ "female", + sex == 2 ~ "male", + sex == 3 ~ "both", + sex == 0 ~ "combined", + TRUE ~ as.character(sex) + ) + }, + growth_pattern = dplyr::case_when( + grepl("_gp_[0-9]$", label) ~ stringr::str_extract(label, "(?<=_)[0-9]$"), + grepl("_gp:[0-9]$", label) ~ stringr::str_extract(label, "(?<=:)[0-9]$"), + grepl("_gp:[0-9][0-9]$", label) ~ stringr::str_extract(label, "(?<=:)[0-9][0-9]$"), + TRUE ~ NA + ), + month = if ("month" %in% colnames(df3)) { + month + } else { + dplyr::case_when( + grepl("_month_[0-9]+$", label) ~ stringr::str_extract(label, "(?<=month_)[0-9]+$"), + TRUE ~ ifelse(any(grepl("^month$", colnames(df3))), month, NA) # this might remove month + ) + } + ) + + df4 <- df4 |> + dplyr::mutate( + label = dplyr::case_when( + grepl("?_month_[0-9]_?", label) ~ stringr::str_replace(label, "_?month_\\d?", ""), + grepl("?_area_[0-9]_?", label) ~ stringr::str_replace(label, "_?area_\\d?", ""), + grepl(paste0(tolower(fleet_names), collapse = "|"), label) ~ stringr::str_remove(label, paste0("_", tolower(fleet_names), collapse = "|")), + TRUE ~ stringr::str_extract(label, "^.*?(?=_\\d|_gp|_fem|_mal|_sx|:|$)") + ) + ) + + if (parm_sel == "DISCARD_OUTPUT") { + df4 <- df4 |> + dplyr::mutate(label = glue::glue("discard_{label}")) + } + # } + } else { + cli::cli_alert_warning(glue::glue("Data frame not compatible in {parm_sel}.")) + } + if (any(colnames(df4) %in% c("value"))) df4 <- dplyr::rename(df4, estimate = value) + + # Check if error values are in the labels column and extract out + if (any(sapply(paste0("(^|[_.])", errors, "($|[_.])"), function(x) grepl(x, unique(df4$label))))) { + err_names <- unique(df4$label)[grepl(paste(paste0("(^|[_.])", errors, "($|[_.])"), collapse = "|"), unique(df4$label)) & !unique(df4$label) %in% errors] + if (any(grepl("sel", err_names))) { + df4 <- df4 + } else if (length(intersect(errors, colnames(df4))) == 1 && "raw_dev" %notin% unique(df4$label)) { + df4 <- df4[-grep(paste(errors, "_", collapse = "|", sep = ""), df4$label), ] + } else if (parm_sel == "MGparm_By_Year_after_adjustments") { # this is too specific + df4 <- df4 + cli::cli_alert_info("Error values are present, but are unique to the data frame and not to a selected parameter.") + } else { + # remove dev and raw_dev from output -- no place for it atm + if ("raw_dev" %in% unique(df4$label)) { + df4 <- df4 |> dplyr::filter(label != "raw_dev") + err_names <- err_names[-grep("raw_dev", err_names)] + } + if ("dev" %in% unique(df4$label)) { + df4 <- df4 |> dplyr::filter(label != "dev") + } + df4 <- df4 |> + tidyr::pivot_wider( + names_from = label, + values_from = estimate, + id_cols = c(intersect(colnames(df4), factors)), + values_fill = NA + ) |> + tidyr::pivot_longer( + cols = -c(intersect(colnames(df4), factors), err_names), + names_to = "label", + values_to = "estimate" + ) |> + dplyr::select(tidyselect::any_of(c("label", "estimate", factors, errors, err_names))) + if (length(err_names) > 1) { + # warning("There are multiple reported error metrics.") + if (any(grepl(paste(err_names, collapse = "|"), colnames(df4)))) { + df4 <- df4 |> + dplyr::select(-tidyselect::all_of(err_names[2:length(err_names)])) + cli::cli_alert_info( + glue::glue("Multiple error metrics reported in {parm_sel}.") + ) + cli::cli_alert_info( + glue::glue("Error label(s) removed: \n {paste(err_names[-1], sep = '\n')}") + ) + } else { + df4 <- df4 |> + dplyr::filter(!(label %in% err_names[2:length(err_names)])) + } + # Find overlapping error values if still present + find_error_value <- function(column_names, to_match_vector) { + vals <- vapply(column_names, function(col_name) { + match <- vapply(to_match_vector, function(err) { + pattern <- paste0("(^|[_.])", err, "($|[_.])") + if (grepl(pattern, col_name)) err else NA_character_ + }, FUN.VALUE = character(1)) + stats::na.omit(match)[1] + }, FUN.VALUE = character(1)) + # } + # only unique values and those that intersect with values vector + intersect(unique(vals), to_match_vector) + } + # SS: I am not entirely sure what this step is doing, but is a good check + if (any(grepl(paste(err_names, collapse = "|"), colnames(df4)))) { + err_name <- find_error_value(names(df4), errors) + if (length(err_name) > 1) { + err_name <- stringr::str_extract(err_names[1], paste(errors, collapse = "|")) + # cli::cli_alert_info( + # glue::glue("Multiple error metrics reported in {parm_sel}. Error label(s) removed: {err_names[-1]}" + # ) + # ) + } + colnames(df4)[grepl(err_name, colnames(df4))] <- err_name + } else { + err_name <- find_error_value(unique(df4$label), errors) + colnames(df4)[grepl(paste(errors, collapse = "|"), colnames(df4))] <- err_name + } + } + } + } + + df5 <- df4 |> + dplyr::select(tidyselect::any_of(c("label", "estimate", "year", factors, errors))) |> + dplyr::mutate( + module_name = parm_sel, + label = dplyr::case_when( + label == "f" ~ "fishing_mortality", + TRUE ~ label + ), + estimate = suppressWarnings(as.numeric(estimate)) + # dplyr::if_else( + # grepl("-|_", as.numeric(estimate)), + # NA, + # estimate + # ) + ) + + if (any(colnames(df5) %in% errors)) { + df5 <- df5 |> + dplyr::mutate(uncertainty_label = intersect(names(df5), errors)) |> + dplyr::rename(uncertainty = intersect(colnames(df5), errors)) + colnames(df5) <- tolower(names(df5)) + } else { + df5 <- df5 |> + dplyr::mutate( + uncertainty_label = NA, + uncertainty = NA + ) + colnames(df5) <- tolower(names(df5)) + } + if ("seas" %in% colnames(df5)) df5 <- dplyr::rename(df5, season = seas) + + if ("subseas" %in% colnames(df5)) df5 <- dplyr::rename(df5, subseason = subseas) + + if ("like" %in% colnames(df5)) df5 <- dplyr::rename(df5, likelihood = like) + + df5[setdiff(tolower(names(out_new)), tolower(names(df5)))] <- NA + if (ncol(out_new) < ncol(df5)) { + diff <- setdiff(names(df5), names(out_new)) + cli::cli_alert_info(paste0("FACTORS REMOVED: ", parm_sel, " - ", paste(diff, collapse = ", "))) + # warning(parm_sel, " has more columns than the output data frame. The column(s) ", paste(diff, collapse = ", ")," are not found in the standard file. It was excluded from the resulting output. Please open an issue for developer fix.") + df5 <- dplyr::select(df5, -tidyselect::all_of(c(diff))) + out_list[[parm_sel]] <- df5 + } else { + out_list[[parm_sel]] <- df5 + } + ##### STD2 #### + } else if (parm_sel %in% std2) { + # 4, 8 + # remove first row - naming + df1 <- extract[-1, ] + # check for age and length comps + rows <- df1 |> dplyr::filter_all(dplyr::any_vars(. %in% c("age_bins", "len_bins"))) + if (length(rows) > 1) { + matchr <- row_match(rows, df1) + df1a <- df1[matchr[1]:matchr[2] - 1, ] + df1a <- Filter(function(x) !all(is.na(x)), df1a) + df1b <- df1[matchr[2]:nrow(df1), ] + df1b <- Filter(function(x) !all(is.na(x)), df1b) + df_list <- list(df1a, df1b) + } else { + # Find first row without NAs = headers + df_sel <- df1[stats::complete.cases(df1), ] + df_list <- list(df_sel) + } + comps_list <- list() + for (i in seq_along(df_list)) { + df2 <- df_list[[i]] + # identify first row + row <- tolower(df2[1, ]) + # make row the header names for first df + colnames(df2) <- row + df2 <- df2[-1, ] + # Defining columns for the grouping + if (any(grepl("len_bins", colnames(df2)))) { + std2_id <- "len_bins" + } else if (any(grepl("age_bins", colnames(df2)))) { + std2_id <- "age_bins" + } else { + std2_id <- "fleet" + } + # pivot data + if (any(grepl(":", df2[max(nrow(df2)), ]))) { + df2 <- df2[-max(nrow(df2)), ] + } else { + df2 <- df2 + } + df3 <- df2 |> + tidyr::pivot_longer( + cols = -intersect(c(factors, errors, std2_id, "n_obs"), colnames(df2)), + names_to = "label", + values_to = "estimate" + ) |> + tidyr::pivot_wider( + names_from = tidyselect::all_of(std2_id), + values_from = estimate + ) + # if(!std2_id %in% factors){ + colnames(df3) <- stringr::str_replace(colnames(df3), "label", std2_id) + # } + if (any(duplicated(tolower(names(df3))))) { + repd_name <- names(which(table(tolower(names(df3))) > 1)) + df3 <- df3 |> + dplyr::select(-tidyselect::all_of(repd_name)) + colnames(df3) <- tolower(names(df3)) + } + if ("age_bins" %in% colnames(df3)) df3 <- dplyr::rename(df3, age = age_bins) + if (nrow(df3) > 0) { + df4 <- df3 |> + tidyr::pivot_longer( + cols = -intersect(c(factors, errors, std2_id, "n_obs"), colnames(df3)), + names_to = "label", + values_to = "estimate" + ) |> + dplyr::mutate(module_name = parm_sel) + } else { + df4 <- df3 + } + if ("seas" %in% colnames(df4)) { + df4 <- df4 |> + dplyr::rename(season = seas) + } + df4 <- dplyr::mutate(df4, module_name = parm_sel) + df4[setdiff(tolower(names(out_new)), tolower(names(df4)))] <- NA + if (ncol(out_new) < ncol(df4)) { + diff <- setdiff(names(df4), names(out_new)) + cli::cli_alert_info(paste0("FACTORS REMOVED: ", parm_sel, " - ", paste(diff, collapse = ", "))) + # warning(parm_sel, " has more columns than the output data frame. The column(s) ", paste(diff, collapse = ", ")," are not found in the standard file. It was excluded from the resulting output. Please open an issue for developer fix.") + df4 <- dplyr::select(df4, -tidyselect::all_of(diff)) + } + comps_list[[i]] <- df4 + } + # Add to new dataframe + df5 <- Reduce(rbind, comps_list) + out_list[[parm_sel]] <- df5 + + ##### cha #### + } else if (parm_sel %in% cha) { + # Only one keyword characterized as this + area_row <- which(apply(extract, 1, function(row) any(row == "Area:"))) + area_val <- c(t(extract[area_row, 3:ncol(extract)])) + gp_row <- which(apply(extract, 1, function(row) any(row == "GP:"))) + gp_val <- c(t(extract[gp_row, 3:ncol(extract)])) + df1 <- extract[-c(1:4), ] + col_name_repl <- paste(parm_sel, "_", area_val, "_", gp_val, sep = "") + colnames(df1) <- c("year", "era", col_name_repl) + df2 <- df1 |> + tidyr::pivot_longer( + cols = -intersect(colnames(df1), c(factors, errors)), + names_to = "label", + values_to = "estimate" + ) |> + dplyr::mutate( + area = stringr::str_extract(label, "(?<=_)[0-9]+"), + growth_pattern = stringr::str_extract(label, "(?<=_)[0-9]+$"), + label = stringr::str_extract(label, "^.*?(?=_[0-9]+)"), + module_name = parm_sel + ) + df2[setdiff(tolower(names(out_new)), tolower(names(df2)))] <- NA + if (ncol(out_new) < ncol(df2)) { + diff <- setdiff(names(df2), names(out_new)) + cli::cli_alert_info(paste0("FACTORS REMOVED: ", parm_sel, " - ", paste(diff, collapse = ", "))) + df2 <- dplyr::select(df2, -tidyselect::all_of(diff)) + out_list[[parm_sel]] <- df2 + } else { + out_list[[parm_sel]] <- df2 + } + ##### rand #### + } else if (parm_sel %in% rand) { + # KEYWORDS in RAND + # "Input_Variance_Adjustment" + # "SPR_SERIES" + # "selparm(Size)_By_Year_after_adjustments" + # "selparm(Age)_By_Year_after_adjustments" + # "BIOLOGY" + # "SPR/YPR_Profile" + # "SPAWN_RECR_CURVE" + # "Biology_at_age_in_endyr" + # "PARAMETERS" + + if (parm_sel %in% c("SPAWN_RECR_CURVE", "SPAWN_RECRUIT_CURVE")) { + # 32 + # TODO: add this to converter + # set labels to "fitted_line_x" + # remove first row - naming + # df1 <- extract[-1, ] + # # Find first row without NAs = headers + # df2 <- df1[stats::complete.cases(df1), ] + # # identify first row + # row <- df2[1, ] + # # make row the header names for first df + # colnames(df1) <- row + # # find row number that matches 'row' + # rownum <- row_match(row, df1) + # # Subset data frame + # df3 <- df1[-c(1:rownum), ] + # colnames(df3) <- tolower(row) + # # add year and manipulate df + # # Extract first year of recruitment + # fyr_row <- which(apply(dat, 1, function(row) any(row == "Start_year:"))) + # first_year <- dat[fyr_row,2] + # # Extract last year + # endyr_row <- which(apply(dat, 1, function(row) any(row == "End_year:"))) + # end_year <- dat[endyr_row,2] + # df4 <- df3 |> + # dplyr::mutate( + # year = seq(first_year, end_year, by = 1), + # ) + # skipping for now cuz not needed + miss_parms <- c(miss_parms, parm_sel) + next + } else if (parm_sel %in% c("sprseries", "SPR_SERIES")) { + if (is.character(file)) { + # split into the 3 dfs then stack - make sure all factors are present + # remove first row - naming + df1 <- extract[-1, ] + # Find first row without NAs = headers + df2 <- df1[stats::complete.cases(df1), ] + # identify first row + row <- df2[1, ] + # make row the header names for first df + colnames(df1) <- row + # find row number that matches 'row' + rownum <- row_match(row, df1) + # Subset data frame + df3 <- df1[-(1:rownum), ] + colnames(df3) <- tolower(row) + } else { + df3 <- extract + colnames(df3) <- tolower(colnames(df3)) + } + # check if there are estimate and acual values within the df + if (any(grepl("actual", colnames(df3)) | grepl("more_f", colnames(df3)))) { + actual_col <- grep("actual", colnames(df3)) + moref_col <- grep("more_f", colnames(df3)) + # Separate out parts of the dataframe + sub_df1 <- df3[, 1:(actual_col - 1)] |> + tidyr::pivot_longer( + cols = -c(yr, era), + names_to = "label", + values_to = "estimate" + ) |> + dplyr::rename(year = yr) |> + dplyr::mutate( + label = dplyr::case_when( + label == "bio_all" ~ "biomass", + label == "bio_smry" ~ "biomass_midyear", + label == "ssbzero" ~ "spawning_biomass_zero", + # label == "ssbfished" ~ "spawning_biomass", + label == "ssbfished/r" ~ "ssbfished_r", + TRUE ~ label + ), + # label = paste("estimate_", label, sep = ""), + morph = NA + ) + + sub_df2 <- df3[, c(1:2, (actual_col + 1):(moref_col - 1))] |> + tidyr::pivot_longer( + cols = -c(yr, era), + names_to = "label", + values_to = "initial" + ) |> + dplyr::rename(year = yr) |> + dplyr::mutate( + label = dplyr::case_when( + label == "bio_all" ~ "biomass", + label == "bio_smry" ~ "biomass_midyear", + label == "num_smry" ~ "abundance_midyear", + label == "dead_catch" ~ "total_catch", # dead + retained + label == "retain_catch" ~ "landings", + label == "ssb" ~ "spawning_biomass", + label == "recruits" ~ "recruitment", + TRUE ~ label + ), + # change so that the values are placed in the column "initial" then combine w/ estimates + # label = paste("actual_", label, sep = ""), + morph = NA + ) + # combine above 2 since they show the estimate and actual values - matching + sub_df12 <- dplyr::full_join( + sub_df1, + sub_df2, + by = c("year", "era", "label", "morph") + ) + # extract last part of df + sub_df3 <- df3[, c(1:2, (moref_col + 1):ncol(df3))] |> + tidyr::pivot_longer( + cols = -c(yr, era), + names_to = "label", + values_to = "estimate" + ) |> + dplyr::rename(year = yr) |> + dplyr::mutate( + morph = dplyr::case_when( + grepl("avef_|maxf_", label) ~ stringr::str_extract(label, "[0-9]+$"), + TRUE ~ NA_character_ + ), + label = dplyr::case_when( + grepl("avef_", label) ~ stringr::str_remove(label, "_[0-9]+"), + grepl("maxf_", label) ~ stringr::str_remove(label, "_[0-9]+"), + label == "f=z-m" ~ "fishing_mortality", + TRUE ~ label + ), + initial = NA + ) + # combine all subdataframes + df4 <- rbind(sub_df12, sub_df3) |> + dplyr::mutate(module_name = parm_sel) + } else { + df4 <- df3 |> + tidyr::pivot_longer( + cols = -c(intersect(colnames(df3), c("Yr", "yr", "era"))), + names_to = "label", + values_to = "estimate" + ) |> + dplyr::rename(year = intersect(colnames(df3), c("Yr", "yr", "Year"))) |> + dplyr::mutate( + label = dplyr::case_when( + grepl("bio_all", label) ~ "biomass", + grepl("bio_smry", label) ~ "biomass_midyear", + label == "ssbzero" ~ "spawning_biomass_zero", + # label == "ssbfished" ~ "spawning_biomass", + grepl("SSB_unfished", label) ~ "SSB_unfished", + grepl("SSBfished_eq", label) ~ "SSB_fished", + label == "ssbfished/r" ~ "ssbfished_r", + TRUE ~ label + ), + # label = paste("estimate_", label, sep = ""), + morph = NA, + module_name = parm_sel + ) + } + # match to out_new + df4[setdiff(tolower(names(out_new)), tolower(names(df4)))] <- NA + # Add to out list + out_list[[parm_sel]] <- df4 + } else if (parm_sel == "selparm(Size)_By_Year_after_adjustments") { + # TODO: revisit one day in group work + # skipping this one because there are no headers + miss_parms <- c(miss_parms, parm_sel) + next + } else if (parm_sel == "selparm(Age)_By_Year_after_adjustments") { + # also skipping + miss_parms <- c(miss_parms, parm_sel) + next + } else if (parm_sel == "BIOLOGY") { + # not sure how this output is helpful + miss_parms <- c(miss_parms, parm_sel) + next + } else if (parm_sel == "SPR/YPR_Profile") { + miss_parms <- c(miss_parms, parm_sel) + next + } else if (parm_sel == "Biology_at_age_in_endyr") { + miss_parms <- c(miss_parms, parm_sel) + next + } else if (tolower(parm_sel) == "parameters") { + if (is.character(file)) { + df1 <- extract[-1, ] + # Find first row without NAs = headers + # temp fix for catch df + df2 <- df1[stats::complete.cases(df1), ] + if (any(c("#") %in% df2[, 1])) { + full_row <- which(apply(df1, 1, function(row) is.na(row) | row == " " | row == "-" | row == "#"))[1] + df1 <- df1[-full_row[1], ] + df1 <- Filter(function(x) !all(is.na(x)), df1) + df2 <- df1[stats::complete.cases(df1), ] + } + # identify first row + row <- df2[1, ] + # make row the header names for first df + colnames(df1) <- row + # find row number that matches 'row' + rownum <- row_match(row, df1) + # Subset data frame + df3 <- df1[-c(1:rownum), ] + colnames(df3) <- tolower(row) + } else { + df3 <- extract + colnames(df3) <- tolower(colnames(df3)) + } + # Pull out indexing variables and remove from labels + df4 <- df3 |> + dplyr::select(intersect(colnames(df3), c("label", "value", "init", "parm_stdev"))) |> + dplyr::rename( + estimate = value, + initial = init, + uncertainty = parm_stdev + ) |> + dplyr::mutate( + uncertainty = dplyr::case_when( + uncertainty == "_" ~ NA, + TRUE ~ uncertainty + ), + uncertainty_label = dplyr::case_when( + is.na(uncertainty) ~ NA, + TRUE ~ "sd" + ), + area = dplyr::case_when( + grepl("?_area_[0-9]_?", label) ~ stringr::str_extract(label, "(?<=area_)[0-9]+"), + grepl("_[0-9]_", label) ~ stringr::str_extract(label, "(?<=_)[0-9]+"), + grepl(":_[0-9]$", label) ~ stringr::str_extract(label, "(?<=_)[0-9]+"), + grepl(":_[0-9][0-9]$", label) ~ stringr::str_extract(label, "(?<=_)[0-9][0-9]+"), + TRUE ~ NA + ), + sex = dplyr::case_when( + grepl("_fem_", label) ~ "female", + grepl("_mal_", label) ~ "male", + grepl("_sx:1$", label) ~ "female", + grepl("_sx:2$", label) ~ "male", + grepl("_sx:1_", label) ~ "female", + grepl("_sx:2_", label) ~ "male", + grepl("Male", label) ~ "male", + grepl("Female", label) ~ "female", + TRUE ~ NA + ), + growth_pattern = dplyr::case_when( + grepl("_gp_[0-9]$", label) ~ stringr::str_extract(label, "(?<=_)[0-9]$"), + grepl("_gp:[0-9]$", label) ~ stringr::str_extract(label, "(?<=:)[0-9]$"), + grepl("_gp:[0-9][0-9]$", label) ~ stringr::str_extract(label, "(?<=:)[0-9][0-9]$"), + grepl("_GP_[0-9]$", label) ~ stringr::str_extract(label, "(?<=_)[0-9]$"), + grepl("_GP:[0-9]$", label) ~ stringr::str_extract(label, "(?<=:)[0-9]$"), + grepl("_GP:[0-9][0-9]$", label) ~ stringr::str_extract(label, "(?<=:)[0-9][0-9]$"), + TRUE ~ NA + ), + month = dplyr::case_when( + grepl("_month_[0-9]+$", label) ~ stringr::str_extract(label, "(?<=month_)[0-9]+$"), + TRUE ~ ifelse(any(grepl("^month$", colnames(df3))), month, NA) + ), + age = dplyr::case_when( + grepl("InitAge", label) ~ stringr::str_extract(label, "(?<=InitAge_)[0-9]+"), + TRUE ~ NA + ), + year = dplyr::case_when( + grepl("RecrDev", label) ~ stringr::str_extract(label, "(?<=RecrDev_)[0-9]+$"), + grepl("_[0-9]{4}$", label) ~ stringr::str_extract(label, "[0-9]{4}$"), + TRUE ~ NA + ), + era = dplyr::case_when( + grepl("InitAge", label) ~ stringr::str_extract(label, "^.*?(?=_InitAge_[0-9]+$)"), + grepl("RecrDev", label) ~ stringr::str_extract(label, "^.*?(?=_RecrDev)"), + TRUE ~ NA + ), + fleet = dplyr::case_when( + grepl( + paste( + fleet_names, + collapse = "|" + ), + label + ) ~ stringr::str_extract(label, paste0("(^.*?_)?<=|", paste(fleet_names, collapse = "|"))), + TRUE ~ NA + ), + block = dplyr::case_when( + grepl("_BLK[0-9]repl_[0-9]{4}$", label) ~ stringr::str_extract(label, "(?<=_BLK)[0-9](?=repl_[0-9]{4}$)"), + TRUE ~ NA + ), + # Must be last step in mutate bc all info comes from the + label = dplyr::case_when( + grepl("?_month_[0-9]_?", label) ~ stringr::str_replace(label, "_?month_\\d?", ""), + grepl("?_area_[0-9]_?", label) ~ stringr::str_replace(label, "_?area_\\d?", ""), + grepl("InitAge", label) ~ "initial_age", + grepl("RecrDev", label) ~ "recruitment_deviations", + grepl( + paste0( + paste0( + "_", + fleet_names, + collapse = "|" + ), + "\\([0-9]+\\)_BLK[0-9]repl_[0-9]{4}$" + ), + label + ) ~ stringr::str_remove_all(label, "(Male_|Female_)|(_[[:alnum:]]+\\([0-9]+\\))|(_BLK[0-9]repl_[0-9]{4})"), + grepl("Male_|Female_", label) & grepl(paste0(paste0("_", fleet_names, collapse = "|"), "\\([0-9]+\\)"), label) ~ stringr::str_remove_all(label, "(Male_|Female_)|(_[[:alnum:]]+\\([0-9]+\\))"), + grepl(paste0(paste0("_", fleet_names, collapse = "|"), "\\([0-9]+\\)"), label) ~ stringr::str_remove(label, paste0(paste0("_", fleet_names, "\\([0-9]+\\)", collapse = "|"))), # , paste0("_", fleet_names, collapse = "|") + TRUE ~ stringr::str_extract(label, "^.*?(?=_\\d|_gp|_fem|_mal|_sx|:|$)") + ), + # fix remaining labels + label = ifelse(grepl("_GP$", label), stringr::str_remove(label, "_GP$"), label), + label = ifelse(grepl("_Fem|_Mal", label), stringr::str_remove(label, "_Fem$|_Mal$"), label), + label = ifelse(grepl(paste0(fleet_names, collapse = "|"), label), stringr::str_remove(label, paste0("_", fleet_names, collapse = "|")), label), + module_name = parm_sel + ) + # match to out_new + df4[setdiff(tolower(names(out_new)), tolower(names(df4)))] <- NA + # Add to out list + out_list[[parm_sel]] <- df4 + } else { + miss_parms <- c(miss_parms, parm_sel) + next + } + # miss_parms <- c(miss_parms, parm_sel) + # next + #### info #### + } else if (parm_sel %in% info) { + # if (parm_sel == "LIKELIHOOD") { + # df1 <- extract[-1, ] + # # make row the header names for first df + # colnames(df1) <- df1[1, ] + # # Remove first row containing column names + # df2 <- df1[-1, ] |> + # dplyr::rename(label = Component) |> + # tidyr::pivot_longer( + # cols = -label, + # names_to = "type", + # values_to = "likelihood" + # ) + # # match to out_new + # df2[setdiff(tolower(names(out_new)), tolower(names(df2)))] <- NA + # # Add to out list + # out_list[[parm_sel]] <- df2 + # } else + if (parm_sel == "DEFINITIONS") { + # Extract start year and end year for iding era + start_year <- as.numeric(extract[which(apply(extract, 1, function(row) any(row == "Start_year:"))), 2]) + end_year <- as.numeric(extract[which(apply(extract, 1, function(row) any(row == "End_year:"))), 2]) + # Pull out only the first two columns and remove first row keyword + # df1 <- extract[-1, 1:2] + # colnames(df1) <- c("label", "estimate") + # # find where rescale is located + # col_rescale <- grep("rescaled_to_sum_to:", extract) + # rescaled_months <- extract[4, col_rescale + 1] |> dplyr::pull() + # # remove : from all labels and tolower and add in rescaled months + # df2 <- df1 |> + # rbind(data.frame( + # label = "rescaled_months", + # estimate = rescaled_months + # )) |> + # dplyr::mutate( + # label = tolower(stringr::str_remove_all(label, ":")), + # module_name = parm_sel + # ) + # # match to out_new + # df2[setdiff(tolower(names(out_new)), tolower(names(df2)))] <- NA + # # Add to out list + # out_list[[parm_sel]] <- df2 + } else { + miss_parms <- c(miss_parms, parm_sel) + next + } + #### aa.al #### + } else if (parm_sel %in% aa.al) { + # 8,9,11,12,13,14,15,16,28,29 + if (is.character(file)) { + # remove first row - naming + df1 <- extract[-1, ] + # Find first row without NAs = headers + df2 <- df1[stats::complete.cases(df1), ] + # identify first row + row <- df2[1, ] + if (any(row %in% "XX")) { + loc_xx <- grep("XX", row) + row <- row[row != "XX"] + df1 <- df1[, -loc_xx] + } + + # TODO: apply this next if statement to a general process so it's part of the standard cleaning + # check if the headers make sense + # this is a temporary fix to a specific bug + # I have seen this issue in the past and I am not sure how to recognize this generally + if (any(parm_sel == "AGE_SELEX" & c("1", "2", "3") %notin% row)) { + rownum <- row_match(row, df1) + # Subset data frame + df1 <- df1[-c(1:rownum), ] + cols_to_keep <- which(sapply(df1, function(x) !all(is.na(x)))) + df1 <- df1 |> dplyr::select(dplyr::all_of(c(names(cols_to_keep)))) + df2 <- df1[stats::complete.cases(df1), ] + row <- df2[1, ] + } + + # make row the header names for first df + colnames(df1) <- row + + # find row number that matches 'row' + rownum <- row_match(row, df1) + # Subset data frame + df3 <- df1[-c(1:rownum), ] + colnames(df3) <- tolower(row) + } else { + # Remove XX columns left in dataframe + if (any("xx" %in% tolower(colnames(extract)))) { + # ID which cols contain XX + df3 <- extract[, -grep("xx", tolower(colnames(extract)))] + } else { + df3 <- extract + } + colnames(df3) <- tolower(colnames(df3)) + } + # aa.al names + naming <- c( + "biomass", "discard", "catch", + "f", "mean_size", "numbers", "Lsel", "sel", + "mean_body_wt", "natural_mortality" + ) + if (stringr::str_detect(tolower(parm_sel), paste(naming, collapse = "|"))) { + label <- stringr::str_extract(tolower(parm_sel), paste(naming, collapse = "|")) + if (length(label) > 1) cli::cli_alert_warning("Length of label is > 1.") + if (label == "f") { + label <- "fishing_mortality" + } + } else { + ( + # add conditions for naming label from aa.al + label <- switch(parm_sel, + # "sizeselex" = "selectivity_length", + "ageselex" = "selectivity_age", + "Natural_Mortality" = "natural_mortality_age", + "fatage" = "fishing_mortality_age", + "natage" = "abundance_age", + "batage" = "biomass_age", + "natlen" = "abundance_length", + "batlen" = "biomass_length", + "discard_at_age" = "discard_age", + "catage" = "catch_age", + "Z_at_age" = "total_mortality_age", + "M_at_age" = "natural_mortality_age", + "Z_by_area" = "total_mortality", + "M_by_area" = "natural_mortality" + ) + ) + } + if (grepl("age", tolower(parm_sel))) { + fac <- "age" + } else if (any(grepl("length|len", tolower(parm_sel)))) { + fac <- "len_bins" + } else if (any(grepl("size", tolower(parm_sel)))) { + fac <- "len_bins" + } else { + fac <- "age" + } + + # remove fac from label + if (grepl(glue::glue("_{fac}"), label)) label <- stringr::str_remove(label, glue::glue("_{fac}")) + + # Reformat dataframe + if (any(colnames(df3) %in% c("Yr", "yr"))) { + df3 <- df3 |> + dplyr::rename(year = yr) + } + if (any(colnames(df3) %in% c("seas"))) { + df3 <- df3 |> + dplyr::rename(season = seas) + } + if (any(colnames(df3) %in% c("subseas"))) { + df3 <- df3 |> + dplyr::rename(subseason = subseas) + } + # if ("label" %in% colnames(df3)) { + # df3 <- dplyr::select(df3, -tidyselect::any_of("label")) + # } + # If factor exists, set to label + if ("factor" %in% colnames(df3)) { + df3 <- df3 |> + dplyr::select(-tidyselect::any_of("label")) |> + dplyr::rename(label = factor) + } else if ("type" %in% colnames(df3)) { + df3 <- df3 |> + dplyr::mutate(label = glue::glue("{label}_{type}")) |> + dplyr::select(-type) + } else { + df3 <- dplyr::mutate(df3, label = label[1]) + } + # Change all columns to chatacters to a avoid issues in pivoting - this will be changed in final df anyway + df3 <- df3 |> + dplyr::mutate(dplyr::across(tidyselect::everything(), as.character)) + # Set all columns after factors as numeric + # Identify last factor col + other_factors <- c( + "bio_pattern", "birthseas", + "settlement", "morph", "beg/mid", + "type", "label", "label", + "platoon", "month", + "sexes", "part", "bin", "kind" + ) + num_cols <- setdiff(colnames(df3), c(factors, other_factors)) + df3 <- df3 |> + dplyr::mutate(dplyr::across(dplyr::all_of(num_cols), as.numeric)) + # Pivot table long + df4 <- df3 |> + tidyr::pivot_longer( + cols = -intersect(c(factors, errors, other_factors), colnames(df3)), + names_to = fac[1], + values_to = "estimate" + ) |> + dplyr::mutate( + # label = label[1], + module_name = parm_sel[1] + ) + if ("sex" %in% colnames(df4)) { + df4 <- df4 |> + dplyr::mutate( + sex = dplyr::case_when( + "sex" %in% colnames(df3) & sex == 1 ~ "female", + "sex" %in% colnames(df3) & sex == 2 ~ "male" + ) + ) + } + if (any(grepl("morph", colnames(df4)))) { + df4 <- df4 |> + dplyr::rename(growth_pattern = morph) + } + # Check if likelihood is in the df + if (any(grepl("like", colnames(df4)))) { + df4 <- df4 |> + dplyr::rename(likelihood = like) + } + # Rename beg/mid if present + if (any(grepl("beg/mid", colnames(df4)))) { + df4 <- df4 |> + dplyr::rename(beg_mid = "beg/mid") + } + # Check for error in the df + if (any(grepl(paste0("^", errors, "$", collapse = "|"), colnames(df4)))) { + error_col <- colnames(df4)[grep(paste0("^", errors, "$", collapse = "|"), colnames(df4))] + if (length(error_col) > 1) { + cli::cli_alert("Multiple error columns present. Error will not be added to module.") + } else { + df4 <- df4 |> + dplyr::mutate( + uncertainty_label = tolower(unique(error_col)), + uncertainty = df4[[error_col]] + ) + } + } + if ("label" %in% colnames(df4) & "factor" %in% colnames(df4)) { + df4 <- df4 |> + dplyr::select(-label) |> + dplyr::mutate(label = dplyr::case_when( + grepl("sel", factor) ~ "sel", + TRUE ~ factor + )) |> + dplyr::select(-factor) + } + # Bind to new df + df4[setdiff(tolower(names(out_new)), tolower(names(df4)))] <- NA + if (ncol(out_new) < ncol(df4)) { + diff <- setdiff(names(df4), names(out_new)) + cli::cli_alert_info(paste0("FACTORS REMOVED: ", parm_sel, " - ", paste(diff, collapse = ", "))) + # warning(parm_sel, " has more columns than the output data frame. The column(s) ", paste(diff, collapse = ", ")," are not found in the standard file. It was excluded from the resulting output. Please open an issue for developer fix.") + df4 <- dplyr::select(df4, -tidyselect::all_of(diff)) + out_list[[parm_sel]] <- df4 + } else { + out_list[[parm_sel]] <- df4 + } + # } else if (parm_sel %in% nn) { + # miss_parms <- c(miss_parms, parm_sel) + # next + } else { + cli::cli_alert_info(glue::glue("Processing {parm_sel}")) + miss_parms <- c(miss_parms, parm_sel) + next + } + } # close if param is in output file + #### skip parm in ss3 #### + } else { + if (is.character(file)) cli::cli_alert(glue::glue("Skipped [{i}] {parm_sel}")) + next + } + } # close loop + if (length(miss_parms) > 0) { + cli::cli_alert_info( + paste0("Some parameters were not found or included in the output file. The following parameters were not added into the new output file: \n", paste(miss_parms, collapse = "\n")) + ) + } + out_new <- Reduce(rbind, out_list) + out_new |> + dplyr::mutate( + fleet = if (any(unique(out_new$fleet) %in% fleet_names)) fleet else fleet_names[fleet], + era = dplyr::case_when( + !is.na(era) ~ era, + year < start_year ~ "init", + year >= start_year & year <= end_year ~ "time", + year > end_year ~ "fore", + TRUE ~ NA_character_ + ) + ) +} diff --git a/R/convert_output.R b/R/convert_output.R index b0b8b1f1..f0745beb 100644 --- a/R/convert_output.R +++ b/R/convert_output.R @@ -183,1780 +183,10 @@ convert_output <- function( # SS3 groupings: https://docs.google.com/spreadsheets/d/11-k0xOo3Bit1MbJf2ZjmymzsUNCRhgGkVfXV1jNEdbM/edit?gid=0#gid=0 # Convert SS3 output Report.sso file if (tolower(model) == "ss3") { - if (is.character(file)) { - # report.sso file - # read SS3 report file - dat <- utils::read.table( - file = file, - col.names = 1:get_ncol(file), - fill = TRUE, - quote = "", - colClasses = "character", # reads all data as characters - nrows = -1, - comment.char = "", - blank.lines.skip = FALSE - ) - # Check SS3 model version - vers <- stringr::str_extract(dat[1, 1], "[0-9].[0-9][0-9].[0-9][0-9]") # .[0-9] - if (vers < 3.3) { - cli::cli_abort("This function in its current state can not process the data.") - } - - # Extract fleet names - if (is.null(fleet_names)) { - fleet_names <- SS3_extract_fleet(dat, vers) - } - # Output fleet names in console - cli::cli_alert_info("Identified fleet names:") - cli::cli_alert_info("{fleet_names}") - - # Estimated and focal parameters to put into reformatted output df - naming conventions from SS3 - # Extract keywords from ss3 file - # Find row where keywords start - keywords_start_row <- which(apply(dat, 1, function(row) any(grepl("#_KeyWords_of_tables_available_in_report_sso", row)))) - # Extract this first chunk of keywords to identify the first reported df - most likely DEFINITIONS - first_blank_after <- which(apply(dat, 1, function(row) all(is.na(row) | row == "")) & (seq_len(nrow(dat)) > keywords_start_row))[1] - rows <- c(keywords_start_row, first_blank_after) - # Extract the metric using the rows from above as a guide and clean up empty columns - keyword_1 <- dat[rows[1]:(rows[2] - 1), ] |> - replace_empty_with_na_all() - keyword_1 <- Filter(function(x) !all(is.na(x)), keyword_1)[-c(1:3), ] - colnames(keyword_1) <- c("output", "keyword", "output_order") - keyword_1 <- keyword_1 |> - dplyr::mutate(output_order = as.numeric(stringr::str_extract(output_order, "\\d+$"))) |> - dplyr::filter(output_order == 1) |> - dplyr::pull(keyword) - # identify first reported keyword - keywords_end_row <- which(apply(dat, 1, function(row) any(grepl(keyword_1, row))))[2] - 12 # 12 rows behind is the last entry for keywords - # always extract the second entry bc the first is just in the list of keywords - - keywords <- dat[keywords_start_row:keywords_end_row, ][-c(1:3), c(1:3)] |> - replace_empty_with_na_all() - keywords <- Filter(function(x) !all(is.na(x)), keywords) - colnames(keywords) <- c("output", "keyword", "output_order") - param_names <- keywords |> - dplyr::mutate(output_order = as.numeric(stringr::str_extract(output_order, "\\d+$"))) |> - dplyr::filter(output == "Y") |> - dplyr::pull(keyword) - - # Group parameters base on table pattern - std <- c( - "DERIVED_QUANTITIES", - "MGparm_By_Year_after_adjustments", - "CATCH", - "SPAWN_RECRUIT", - "TIME_SERIES", - "DISCARD_OUTPUT", - "INDEX_2", - "FIT_LEN_COMPS", - "FIT_AGE_COMPS", - "FIT_SIZE_COMPS", - "SELEX_database", - "Growth_Parameters", - "Kobe_Plot" - ) - std2 <- c("OVERALL_COMPS") - cha <- c("Dynamic_Bzero") - rand <- c( - "Input_Variance_Adjustment", - "SPR_SERIES", - "selparm(Size)_By_Year_after_adjustments", - "selparm(Age)_By_Year_after_adjustments", - "BIOLOGY", - "SPR/YPR_Profile", - "Biology_at_age_in_endyr", - "SPAWN_RECR_CURVE", - "PARAMETERS" - ) - info <- c( - "LIKELIHOOD", - "DEFINITIONS" - ) - aa.al <- c( - "BIOMASS_AT_AGE", - "BIOMASS_AT_LENGTH", - "DISCARD_AT_AGE", - "CATCH_AT_AGE", - "F_AT_AGE", - "MEAN_SIZE_TIMESERIES", - "NUMBERS_AT_AGE", - "NUMBERS_AT_LENGTH", - "AGE_SELEX", - "LEN_SELEX", - "MEAN_BODY_WT(Begin)", - "Natural_Mortality" - ) - nn <- c( - "MORPH_INDEXING", - "EXPLOITATION", - "DISCARD_SPECIFICATION", - "INDEX_1", - "MEAN_BODY_WT_OUTPUT" - ) - # Intentionally left empty - single_val <- c() - } else { - # r4ss::ss_output - dat <- file - # Extract fleet names - if (is.null(fleet_names)) { - fleet_names <- dat$FleetNames - } - # Output fleet names in console - cli::cli_alert_info("Identified fleet names:") - cli::cli_alert_info("{fleet_names}") - - # Extract start year and end year - start_year <- file$startyr - end_year <- file$endyr - - param_names <- names(dat) - - std <- c( - "recruit", # STD - "exploitation", # STD - "catch", # STD - "timeseries", # STD - "discard", # STD - "kobe", # maybe STD - "cpue", # STD - "derived_quants", # STD - "Dynamic_Bzero", # STD - "len_comp_fit_table", # STD - "age_comp_fit_table" # STD - ) - rand <- c( - "SPAWN_RECRUIT_CURVE", # RAND - "sprseries", # RAND - "parameters" # RAND - # "equil_yeild", # SKIP FOR NOW - RAND - ) - aa.al <- c( - "sizeselex", # AA.AL - "ageselex", # AA.AL - "Natural_Mortality", # AA.AL - "fatage", # AA.AL - "natage", # AA.AL - "batage", # AA.AL - "natlen", # AA.AL - "batlen", # AA.AL - "discard_at_age", # AA.AL - "catage", # AA.AL - "Z_at_age", # AA.AL - DO WE NEED BOTH? THIS AND Z_BY_AREA - "M_at_age", # AA.AL - DO WE NEED BOTH? THIS AND M_BY_AREA - "Z_by_area", # AA.AL - "M_by_area" # AA.AL - ) - # "growth_series" # ? UNSURE THIS IS NULL IN EXAMPLE - # "mngwt" # ??? - single_val <- c( - "sprtarg", # single value - "btarg", # single value - "SBzero" # SINGLE VALUE - ) - # ntentionally empty - std2 <- c() - cha <- c() - info <- c() - } - - # Loop for all identified parameters to extract for plotting and use - # Create list of parameters that were not found in the output file - # 1,4,10,17,19,20,22,32,37 - factors <- c( - "era", "year", "fleet", - "fleet_name", "age", "sex", - "area", "seas", "season", - "time", "era", "subseas", - "subseason", "platoon", "platoo", - "growth_pattern", "gp", "month", - "like", "morph", "bio_pattern", - "settlement", "birthseas", "count", - "kind" - ) - - errors <- c( - "StdDev", "sd", "std", "stddev", - "se", "SE", - "cv", "CV" - # "dev" # not included bc this is dev in model, not uncertainty of the value - ) - - miss_parms <- c() - out_list <- list() - #### SS3 loop #### - for (i in seq_along(param_names)) { - # Processing data frame - parm_sel <- param_names[i] - if (parm_sel %in% c(std, std2, cha, rand, info, aa.al, single_val)) { - cli::cli_alert(glue::glue("Processing {parm_sel}")) # Remove [{i}] - if (is.character(file)) { - extract <- SS3_extract_df(dat, parm_sel) - } else { - extract <- file[[parm_sel]] - } - - if (!is.data.frame(extract)) { - if (is.numeric(extract)) { - df <- data.frame( - label = parm_sel, - module_name = parm_sel, - estimate = extract[[1]] - ) - df[setdiff(tolower(names(out_new)), tolower(names(df)))] <- NA - out_list[[parm_sel]] <- df - } else { - miss_parms <- c(miss_parms, parm_sel) - cli::cli_alert(glue::glue("Skipped {parm_sel}")) - next - } - } else { - ##### STD #### - # 1,4,10,17,19,36 - if (parm_sel %in% std) { - if (is.character(file)) { - # remove first row - naming - df1 <- extract[-1, ] - # Find first row without NAs = headers - # temp fix for catch df - I have only seen this issue for Hake example - if (any(is.na(df1[1, ])) & parm_sel == "CATCH") { - df1 <- df1[-1, ] - cols_to_keep <- which(sapply(df1, function(x) !all(is.na(x)))) - df1 <- df1 |> dplyr::select(dplyr::all_of(c(names(cols_to_keep)))) - df2 <- df1 - } else { - df2 <- df1[stats::complete.cases(df1), ] - } - if (any(c("#") %in% df2[, 1])) { - full_row <- which(apply(df1, 1, function(row) is.na(row) | row == " " | row == "-" | row == "#"))[1] - df1 <- df1[-full_row[1], ] - df1 <- Filter(function(x) !all(is.na(x)), df1) - df2 <- df1[stats::complete.cases(df1), ] - } - # identify first row - row <- df2[1, ] - # find row number that matches 'row' - rownum <- row_match(as.vector(row), df1) - # make row the header names for first df - colnames(df1) <- row - # Subset data frame - df3 <- df1[-c(1:rownum), ] - colnames(df3) <- tolower(row) - } else { - # from 4rss output - df3 <- extract - colnames(df3) <- tolower(colnames(df3)) - # ID any column names that are fleets (exploitation module in r4ss) - if (any(tolower(fleet_names) %in% colnames(df3))) { - for (i in intersect(tolower(fleet_names), colnames(df3))) { - col_name <- glue::glue("exploitation_{i}") - df3 <- df3 |> - dplyr::rename(!!col_name := dplyr::all_of(i)) - } - } - } - # Remove any leftover NA columns if still present - NA_cols <- which(sapply(df3, function(x) all(is.na(x)))) - if (length(NA_cols) > 0) df3 <- df3[, -NA_cols] - # Remove suprper + use from df - if (any(grepl("suprper|use", colnames(df3)))) { - df3 <- df3 |> - dplyr::select(-tidyselect::any_of(c("suprper", "use"))) - } - # Reformat data frame - if (any(colnames(df3) %in% c("Yr", "yr"))) { - df3 <- df3 |> - dplyr::rename(year = yr) - } - if ("label" %in% colnames(df3)) { - if (any(grepl("_[0-9]+$", df3$label))) { - df4 <- df3 |> - dplyr::mutate( - year = stringr::str_extract(label, "[0-9]+$"), - label = stringr::str_remove(label, "_[0-9]+$"), - # Add factors consistent with other else - area = NA, - sex = NA, - growth_pattern = NA, - fleet = NA - ) # need to remove the multiple error one - } - } else if (any(colnames(df3) %in% c(factors, errors))) { - # Keeping check here if case arises that there is a similar situation to the error - # aka there are multiple columns containing the string and they are not selected properly - - if ("sexes" %in% colnames(df3)) { - df3 <- df3 |> - # add in case if sexes is present and add sex as na if so - dplyr::mutate(sex = if (any(grepl("^sexes$", colnames(df3)))) sexes else NA) |> - dplyr::select(-sexes) - } else { - df3 <- dplyr::mutate(df3, sex = NA) - } - - # Identify which errors were identified in a column & rename - err_col_id <- colnames(df3)[grepl(paste0(errors, "$", collapse = "|"), colnames(df3))] - # rename error column - if (length(err_col_id) > 0) { - uncert_name <- stringr::str_extract(err_col_id, paste0(errors, collapse = "|")) - df3 <- df3 |> - dplyr::rename(!!uncert_name := dplyr::all_of(err_col_id)) - } - df4 <- df3 |> - tidyr::pivot_longer( - !tidyselect::any_of(c(factors, errors)), - names_to = "label", - values_to = "estimate" - ) |> # , colnames(dplyr::select(df3, tidyselect::matches(errors))) - dplyr::mutate( - fleet = if ("fleet" %notin% colnames(df3)) { - dplyr::case_when( - # "fleet" %in% colnames(.data) ~ fleet, - grepl(paste0(tolower(fleet_names), collapse = "|"), label) ~ stringr::str_extract(label, paste(tolower(fleet_names), collapse = "|")), - grepl(":_[0-9]$", label) ~ stringr::str_extract(label, "(?<=_)[0-9]+"), - grepl(":_[0-9][0-9]$", label) ~ stringr::str_extract(label, "(?<=_)[0-9][0-9]+"), - TRUE ~ NA - ) - } else if ("fleet_name" %in% colnames(df3)) { - fleet_name - } else { - fleet - }, - area = if ("area" %notin% colnames(df3)) { - dplyr::case_when( - grepl("?_area_[0-9]_?", label) ~ stringr::str_extract(label, "(?<=area_)[0-9]+"), - grepl("_[0-9]_", label) ~ stringr::str_extract(label, "(?<=_)[0-9]+"), - grepl(":_[0-9]$", label) ~ stringr::str_extract(label, "(?<=_)[0-9]+"), - grepl(":_[0-9][0-9]$", label) ~ stringr::str_extract(label, "(?<=_)[0-9][0-9]+"), - TRUE ~ NA - ) - } else { - area - }, - sex = if ("sex" %notin% colnames(df3)) { - dplyr::case_when( - grepl("_fem_", label) ~ "female", - grepl("_mal_", label) ~ "male", - grepl("_sx:1$", label) ~ "female", - grepl("_sx:2$", label) ~ "male", - grepl("_sx:1_", label) ~ "female", - grepl("_sx:2_", label) ~ "male", - TRUE ~ NA - ) - } else { - dplyr::case_when( - sex == 1 ~ "female", - sex == 2 ~ "male", - sex == 3 ~ "both", - sex == 0 ~ "combined", - TRUE ~ as.character(sex) - ) - }, - growth_pattern = dplyr::case_when( - grepl("_gp_[0-9]$", label) ~ stringr::str_extract(label, "(?<=_)[0-9]$"), - grepl("_gp:[0-9]$", label) ~ stringr::str_extract(label, "(?<=:)[0-9]$"), - grepl("_gp:[0-9][0-9]$", label) ~ stringr::str_extract(label, "(?<=:)[0-9][0-9]$"), - TRUE ~ NA - ), - month = if ("month" %in% colnames(df3)) { - month - } else { - dplyr::case_when( - grepl("_month_[0-9]+$", label) ~ stringr::str_extract(label, "(?<=month_)[0-9]+$"), - TRUE ~ ifelse(any(grepl("^month$", colnames(df3))), month, NA) # this might remove month - ) - } - ) - - df4 <- df4 |> - dplyr::mutate( - label = dplyr::case_when( - grepl("?_month_[0-9]_?", label) ~ stringr::str_replace(label, "_?month_\\d?", ""), - grepl("?_area_[0-9]_?", label) ~ stringr::str_replace(label, "_?area_\\d?", ""), - grepl(paste0(tolower(fleet_names), collapse = "|"), label) ~ stringr::str_remove(label, paste0("_", tolower(fleet_names), collapse = "|")), - TRUE ~ stringr::str_extract(label, "^.*?(?=_\\d|_gp|_fem|_mal|_sx|:|$)") - ) - ) - - if (parm_sel == "DISCARD_OUTPUT") { - df4 <- df4 |> - dplyr::mutate(label = glue::glue("discard_{label}")) - } - # } - } else { - cli::cli_alert_warning(glue::glue("Data frame not compatible in {parm_sel}.")) - } - if (any(colnames(df4) %in% c("value"))) df4 <- dplyr::rename(df4, estimate = value) - - # Check if error values are in the labels column and extract out - if (any(sapply(paste0("(^|[_.])", errors, "($|[_.])"), function(x) grepl(x, unique(df4$label))))) { - err_names <- unique(df4$label)[grepl(paste(paste0("(^|[_.])", errors, "($|[_.])"), collapse = "|"), unique(df4$label)) & !unique(df4$label) %in% errors] - if (any(grepl("sel", err_names))) { - df4 <- df4 - } else if (length(intersect(errors, colnames(df4))) == 1 && "raw_dev" %notin% unique(df4$label)) { - df4 <- df4[-grep(paste(errors, "_", collapse = "|", sep = ""), df4$label), ] - } else if (parm_sel == "MGparm_By_Year_after_adjustments") { # this is too specific - df4 <- df4 - cli::cli_alert_info("Error values are present, but are unique to the data frame and not to a selected parameter.") - } else { - # remove dev and raw_dev from output -- no place for it atm - if ("raw_dev" %in% unique(df4$label)) { - df4 <- df4 |> dplyr::filter(label != "raw_dev") - err_names <- err_names[-grep("raw_dev", err_names)] - } - if ("dev" %in% unique(df4$label)) { - df4 <- df4 |> dplyr::filter(label != "dev") - } - df4 <- df4 |> - tidyr::pivot_wider( - names_from = label, - values_from = estimate, - id_cols = c(intersect(colnames(df4), factors)), - values_fill = NA - ) |> - tidyr::pivot_longer( - cols = -c(intersect(colnames(df4), factors), err_names), - names_to = "label", - values_to = "estimate" - ) |> - dplyr::select(tidyselect::any_of(c("label", "estimate", factors, errors, err_names))) - if (length(err_names) > 1) { - # warning("There are multiple reported error metrics.") - if (any(grepl(paste(err_names, collapse = "|"), colnames(df4)))) { - df4 <- df4 |> - dplyr::select(-tidyselect::all_of(err_names[2:length(err_names)])) - cli::cli_alert_info( - glue::glue("Multiple error metrics reported in {parm_sel}.") - ) - cli::cli_alert_info( - glue::glue("Error label(s) removed: \n {paste(err_names[-1], sep = '\n')}") - ) - } else { - df4 <- df4 |> - dplyr::filter(!(label %in% err_names[2:length(err_names)])) - } - # Find overlapping error values if still present - find_error_value <- function(column_names, to_match_vector) { - vals <- vapply(column_names, function(col_name) { - match <- vapply(to_match_vector, function(err) { - pattern <- paste0("(^|[_.])", err, "($|[_.])") - if (grepl(pattern, col_name)) err else NA_character_ - }, FUN.VALUE = character(1)) - stats::na.omit(match)[1] - }, FUN.VALUE = character(1)) - # } - # only unique values and those that intersect with values vector - intersect(unique(vals), to_match_vector) - } - # SS: I am not entirely sure what this step is doing, but is a good check - if (any(grepl(paste(err_names, collapse = "|"), colnames(df4)))) { - err_name <- find_error_value(names(df4), errors) - if (length(err_name) > 1) { - err_name <- stringr::str_extract(err_names[1], paste(errors, collapse = "|")) - # cli::cli_alert_info( - # glue::glue("Multiple error metrics reported in {parm_sel}. Error label(s) removed: {err_names[-1]}" - # ) - # ) - } - colnames(df4)[grepl(err_name, colnames(df4))] <- err_name - } else { - err_name <- find_error_value(unique(df4$label), errors) - colnames(df4)[grepl(paste(errors, collapse = "|"), colnames(df4))] <- err_name - } - } - } - } - - df5 <- df4 |> - dplyr::select(tidyselect::any_of(c("label", "estimate", "year", factors, errors))) |> - dplyr::mutate( - module_name = parm_sel, - label = dplyr::case_when( - label == "f" ~ "fishing_mortality", - TRUE ~ label - ), - estimate = suppressWarnings(as.numeric(estimate)) - # dplyr::if_else( - # grepl("-|_", as.numeric(estimate)), - # NA, - # estimate - # ) - ) - - if (any(colnames(df5) %in% errors)) { - df5 <- df5 |> - dplyr::mutate(uncertainty_label = intersect(names(df5), errors)) |> - dplyr::rename(uncertainty = intersect(colnames(df5), errors)) - colnames(df5) <- tolower(names(df5)) - } else { - df5 <- df5 |> - dplyr::mutate( - uncertainty_label = NA, - uncertainty = NA - ) - colnames(df5) <- tolower(names(df5)) - } - if ("seas" %in% colnames(df5)) df5 <- dplyr::rename(df5, season = seas) - - if ("subseas" %in% colnames(df5)) df5 <- dplyr::rename(df5, subseason = subseas) - - if ("like" %in% colnames(df5)) df5 <- dplyr::rename(df5, likelihood = like) - - df5[setdiff(tolower(names(out_new)), tolower(names(df5)))] <- NA - if (ncol(out_new) < ncol(df5)) { - diff <- setdiff(names(df5), names(out_new)) - cli::cli_alert_info(paste0("FACTORS REMOVED: ", parm_sel, " - ", paste(diff, collapse = ", "))) - # warning(parm_sel, " has more columns than the output data frame. The column(s) ", paste(diff, collapse = ", ")," are not found in the standard file. It was excluded from the resulting output. Please open an issue for developer fix.") - df5 <- dplyr::select(df5, -tidyselect::all_of(c(diff))) - out_list[[parm_sel]] <- df5 - } else { - out_list[[parm_sel]] <- df5 - } - ##### STD2 #### - } else if (parm_sel %in% std2) { - # 4, 8 - # remove first row - naming - df1 <- extract[-1, ] - # check for age and length comps - rows <- df1 |> dplyr::filter_all(dplyr::any_vars(. %in% c("age_bins", "len_bins"))) - if (length(rows) > 1) { - matchr <- row_match(rows, df1) - df1a <- df1[matchr[1]:matchr[2] - 1, ] - df1a <- Filter(function(x) !all(is.na(x)), df1a) - df1b <- df1[matchr[2]:nrow(df1), ] - df1b <- Filter(function(x) !all(is.na(x)), df1b) - df_list <- list(df1a, df1b) - } else { - # Find first row without NAs = headers - df_sel <- df1[stats::complete.cases(df1), ] - df_list <- list(df_sel) - } - comps_list <- list() - for (i in seq_along(df_list)) { - df2 <- df_list[[i]] - # identify first row - row <- tolower(df2[1, ]) - # make row the header names for first df - colnames(df2) <- row - df2 <- df2[-1, ] - # Defining columns for the grouping - if (any(grepl("len_bins", colnames(df2)))) { - std2_id <- "len_bins" - } else if (any(grepl("age_bins", colnames(df2)))) { - std2_id <- "age_bins" - } else { - std2_id <- "fleet" - } - # pivot data - if (any(grepl(":", df2[max(nrow(df2)), ]))) { - df2 <- df2[-max(nrow(df2)), ] - } else { - df2 <- df2 - } - df3 <- df2 |> - tidyr::pivot_longer( - cols = -intersect(c(factors, errors, std2_id, "n_obs"), colnames(df2)), - names_to = "label", - values_to = "estimate" - ) |> - tidyr::pivot_wider( - names_from = tidyselect::all_of(std2_id), - values_from = estimate - ) - # if(!std2_id %in% factors){ - colnames(df3) <- stringr::str_replace(colnames(df3), "label", std2_id) - # } - if (any(duplicated(tolower(names(df3))))) { - repd_name <- names(which(table(tolower(names(df3))) > 1)) - df3 <- df3 |> - dplyr::select(-tidyselect::all_of(repd_name)) - colnames(df3) <- tolower(names(df3)) - } - if ("age_bins" %in% colnames(df3)) df3 <- dplyr::rename(df3, age = age_bins) - if (nrow(df3) > 0) { - df4 <- df3 |> - tidyr::pivot_longer( - cols = -intersect(c(factors, errors, std2_id, "n_obs"), colnames(df3)), - names_to = "label", - values_to = "estimate" - ) |> - dplyr::mutate(module_name = parm_sel) - } else { - df4 <- df3 - } - if ("seas" %in% colnames(df4)) { - df4 <- df4 |> - dplyr::rename(season = seas) - } - df4 <- dplyr::mutate(df4, module_name = parm_sel) - df4[setdiff(tolower(names(out_new)), tolower(names(df4)))] <- NA - if (ncol(out_new) < ncol(df4)) { - diff <- setdiff(names(df4), names(out_new)) - cli::cli_alert_info(paste0("FACTORS REMOVED: ", parm_sel, " - ", paste(diff, collapse = ", "))) - # warning(parm_sel, " has more columns than the output data frame. The column(s) ", paste(diff, collapse = ", ")," are not found in the standard file. It was excluded from the resulting output. Please open an issue for developer fix.") - df4 <- dplyr::select(df4, -tidyselect::all_of(diff)) - } - comps_list[[i]] <- df4 - } - # Add to new dataframe - df5 <- Reduce(rbind, comps_list) - out_list[[parm_sel]] <- df5 - - ##### cha #### - } else if (parm_sel %in% cha) { - # Only one keyword characterized as this - area_row <- which(apply(extract, 1, function(row) any(row == "Area:"))) - area_val <- c(t(extract[area_row, 3:ncol(extract)])) - gp_row <- which(apply(extract, 1, function(row) any(row == "GP:"))) - gp_val <- c(t(extract[gp_row, 3:ncol(extract)])) - df1 <- extract[-c(1:4), ] - col_name_repl <- paste(parm_sel, "_", area_val, "_", gp_val, sep = "") - colnames(df1) <- c("year", "era", col_name_repl) - df2 <- df1 |> - tidyr::pivot_longer( - cols = -intersect(colnames(df1), c(factors, errors)), - names_to = "label", - values_to = "estimate" - ) |> - dplyr::mutate( - area = stringr::str_extract(label, "(?<=_)[0-9]+"), - growth_pattern = stringr::str_extract(label, "(?<=_)[0-9]+$"), - label = stringr::str_extract(label, "^.*?(?=_[0-9]+)"), - module_name = parm_sel - ) - df2[setdiff(tolower(names(out_new)), tolower(names(df2)))] <- NA - if (ncol(out_new) < ncol(df2)) { - diff <- setdiff(names(df2), names(out_new)) - cli::cli_alert_info(paste0("FACTORS REMOVED: ", parm_sel, " - ", paste(diff, collapse = ", "))) - df2 <- dplyr::select(df2, -tidyselect::all_of(diff)) - out_list[[parm_sel]] <- df2 - } else { - out_list[[parm_sel]] <- df2 - } - ##### rand #### - } else if (parm_sel %in% rand) { - # KEYWORDS in RAND - # "Input_Variance_Adjustment" - # "SPR_SERIES" - # "selparm(Size)_By_Year_after_adjustments" - # "selparm(Age)_By_Year_after_adjustments" - # "BIOLOGY" - # "SPR/YPR_Profile" - # "SPAWN_RECR_CURVE" - # "Biology_at_age_in_endyr" - # "PARAMETERS" - - if (parm_sel %in% c("SPAWN_RECR_CURVE", "SPAWN_RECRUIT_CURVE")) { - # 32 - # TODO: add this to converter - # set labels to "fitted_line_x" - # remove first row - naming - # df1 <- extract[-1, ] - # # Find first row without NAs = headers - # df2 <- df1[stats::complete.cases(df1), ] - # # identify first row - # row <- df2[1, ] - # # make row the header names for first df - # colnames(df1) <- row - # # find row number that matches 'row' - # rownum <- row_match(row, df1) - # # Subset data frame - # df3 <- df1[-c(1:rownum), ] - # colnames(df3) <- tolower(row) - # # add year and manipulate df - # # Extract first year of recruitment - # fyr_row <- which(apply(dat, 1, function(row) any(row == "Start_year:"))) - # first_year <- dat[fyr_row,2] - # # Extract last year - # endyr_row <- which(apply(dat, 1, function(row) any(row == "End_year:"))) - # end_year <- dat[endyr_row,2] - # df4 <- df3 |> - # dplyr::mutate( - # year = seq(first_year, end_year, by = 1), - # ) - # skipping for now cuz not needed - miss_parms <- c(miss_parms, parm_sel) - next - } else if (parm_sel %in% c("sprseries", "SPR_SERIES")) { - if (is.character(file)) { - # split into the 3 dfs then stack - make sure all factors are present - # remove first row - naming - df1 <- extract[-1, ] - # Find first row without NAs = headers - df2 <- df1[stats::complete.cases(df1), ] - # identify first row - row <- df2[1, ] - # make row the header names for first df - colnames(df1) <- row - # find row number that matches 'row' - rownum <- row_match(row, df1) - # Subset data frame - df3 <- df1[-(1:rownum), ] - colnames(df3) <- tolower(row) - } else { - df3 <- extract - colnames(df3) <- tolower(colnames(df3)) - } - # check if there are estimate and acual values within the df - if (any(grepl("actual", colnames(df3)) | grepl("more_f", colnames(df3)))) { - actual_col <- grep("actual", colnames(df3)) - moref_col <- grep("more_f", colnames(df3)) - # Separate out parts of the dataframe - sub_df1 <- df3[, 1:(actual_col - 1)] |> - tidyr::pivot_longer( - cols = -c(yr, era), - names_to = "label", - values_to = "estimate" - ) |> - dplyr::rename(year = yr) |> - dplyr::mutate( - label = dplyr::case_when( - label == "bio_all" ~ "biomass", - label == "bio_smry" ~ "biomass_midyear", - label == "ssbzero" ~ "spawning_biomass_zero", - # label == "ssbfished" ~ "spawning_biomass", - label == "ssbfished/r" ~ "ssbfished_r", - TRUE ~ label - ), - # label = paste("estimate_", label, sep = ""), - morph = NA - ) - - sub_df2 <- df3[, c(1:2, (actual_col + 1):(moref_col - 1))] |> - tidyr::pivot_longer( - cols = -c(yr, era), - names_to = "label", - values_to = "initial" - ) |> - dplyr::rename(year = yr) |> - dplyr::mutate( - label = dplyr::case_when( - label == "bio_all" ~ "biomass", - label == "bio_smry" ~ "biomass_midyear", - label == "num_smry" ~ "abundance_midyear", - label == "dead_catch" ~ "total_catch", # dead + retained - label == "retain_catch" ~ "landings", - label == "ssb" ~ "spawning_biomass", - label == "recruits" ~ "recruitment", - TRUE ~ label - ), - # change so that the values are placed in the column "initial" then combine w/ estimates - # label = paste("actual_", label, sep = ""), - morph = NA - ) - # combine above 2 since they show the estimate and actual values - matching - sub_df12 <- dplyr::full_join( - sub_df1, - sub_df2, - by = c("year", "era", "label", "morph") - ) - # extract last part of df - sub_df3 <- df3[, c(1:2, (moref_col + 1):ncol(df3))] |> - tidyr::pivot_longer( - cols = -c(yr, era), - names_to = "label", - values_to = "estimate" - ) |> - dplyr::rename(year = yr) |> - dplyr::mutate( - morph = dplyr::case_when( - grepl("avef_|maxf_", label) ~ stringr::str_extract(label, "[0-9]+$"), - TRUE ~ NA_character_ - ), - label = dplyr::case_when( - grepl("avef_", label) ~ stringr::str_remove(label, "_[0-9]+"), - grepl("maxf_", label) ~ stringr::str_remove(label, "_[0-9]+"), - label == "f=z-m" ~ "fishing_mortality", - TRUE ~ label - ), - initial = NA - ) - # combine all subdataframes - df4 <- rbind(sub_df12, sub_df3) |> - dplyr::mutate(module_name = parm_sel) - } else { - df4 <- df3 |> - tidyr::pivot_longer( - cols = -c(intersect(colnames(df3), c("Yr", "yr", "era"))), - names_to = "label", - values_to = "estimate" - ) |> - dplyr::rename(year = intersect(colnames(df3), c("Yr", "yr", "Year"))) |> - dplyr::mutate( - label = dplyr::case_when( - grepl("bio_all", label) ~ "biomass", - grepl("bio_smry", label) ~ "biomass_midyear", - label == "ssbzero" ~ "spawning_biomass_zero", - # label == "ssbfished" ~ "spawning_biomass", - grepl("SSB_unfished", label) ~ "SSB_unfished", - grepl("SSBfished_eq", label) ~ "SSB_fished", - label == "ssbfished/r" ~ "ssbfished_r", - TRUE ~ label - ), - # label = paste("estimate_", label, sep = ""), - morph = NA, - module_name = parm_sel - ) - } - # match to out_new - df4[setdiff(tolower(names(out_new)), tolower(names(df4)))] <- NA - # Add to out list - out_list[[parm_sel]] <- df4 - } else if (parm_sel == "selparm(Size)_By_Year_after_adjustments") { - # TODO: revisit one day in group work - # skipping this one because there are no headers - miss_parms <- c(miss_parms, parm_sel) - next - } else if (parm_sel == "selparm(Age)_By_Year_after_adjustments") { - # also skipping - miss_parms <- c(miss_parms, parm_sel) - next - } else if (parm_sel == "BIOLOGY") { - # not sure how this output is helpful - miss_parms <- c(miss_parms, parm_sel) - next - } else if (parm_sel == "SPR/YPR_Profile") { - miss_parms <- c(miss_parms, parm_sel) - next - } else if (parm_sel == "Biology_at_age_in_endyr") { - miss_parms <- c(miss_parms, parm_sel) - next - } else if (tolower(parm_sel) == "parameters") { - if (is.character(file)) { - df1 <- extract[-1, ] - # Find first row without NAs = headers - # temp fix for catch df - df2 <- df1[stats::complete.cases(df1), ] - if (any(c("#") %in% df2[, 1])) { - full_row <- which(apply(df1, 1, function(row) is.na(row) | row == " " | row == "-" | row == "#"))[1] - df1 <- df1[-full_row[1], ] - df1 <- Filter(function(x) !all(is.na(x)), df1) - df2 <- df1[stats::complete.cases(df1), ] - } - # identify first row - row <- df2[1, ] - # make row the header names for first df - colnames(df1) <- row - # find row number that matches 'row' - rownum <- row_match(row, df1) - # Subset data frame - df3 <- df1[-c(1:rownum), ] - colnames(df3) <- tolower(row) - } else { - df3 <- extract - colnames(df3) <- tolower(colnames(df3)) - } - # Pull out indexing variables and remove from labels - df4 <- df3 |> - dplyr::select(intersect(colnames(df3), c("label", "value", "init", "parm_stdev"))) |> - dplyr::rename( - estimate = value, - initial = init, - uncertainty = parm_stdev - ) |> - dplyr::mutate( - uncertainty = dplyr::case_when( - uncertainty == "_" ~ NA, - TRUE ~ uncertainty - ), - uncertainty_label = dplyr::case_when( - is.na(uncertainty) ~ NA, - TRUE ~ "sd" - ), - area = dplyr::case_when( - grepl("?_area_[0-9]_?", label) ~ stringr::str_extract(label, "(?<=area_)[0-9]+"), - grepl("_[0-9]_", label) ~ stringr::str_extract(label, "(?<=_)[0-9]+"), - grepl(":_[0-9]$", label) ~ stringr::str_extract(label, "(?<=_)[0-9]+"), - grepl(":_[0-9][0-9]$", label) ~ stringr::str_extract(label, "(?<=_)[0-9][0-9]+"), - TRUE ~ NA - ), - sex = dplyr::case_when( - grepl("_fem_", label) ~ "female", - grepl("_mal_", label) ~ "male", - grepl("_sx:1$", label) ~ "female", - grepl("_sx:2$", label) ~ "male", - grepl("_sx:1_", label) ~ "female", - grepl("_sx:2_", label) ~ "male", - grepl("Male", label) ~ "male", - grepl("Female", label) ~ "female", - TRUE ~ NA - ), - growth_pattern = dplyr::case_when( - grepl("_gp_[0-9]$", label) ~ stringr::str_extract(label, "(?<=_)[0-9]$"), - grepl("_gp:[0-9]$", label) ~ stringr::str_extract(label, "(?<=:)[0-9]$"), - grepl("_gp:[0-9][0-9]$", label) ~ stringr::str_extract(label, "(?<=:)[0-9][0-9]$"), - grepl("_GP_[0-9]$", label) ~ stringr::str_extract(label, "(?<=_)[0-9]$"), - grepl("_GP:[0-9]$", label) ~ stringr::str_extract(label, "(?<=:)[0-9]$"), - grepl("_GP:[0-9][0-9]$", label) ~ stringr::str_extract(label, "(?<=:)[0-9][0-9]$"), - TRUE ~ NA - ), - month = dplyr::case_when( - grepl("_month_[0-9]+$", label) ~ stringr::str_extract(label, "(?<=month_)[0-9]+$"), - TRUE ~ ifelse(any(grepl("^month$", colnames(df3))), month, NA) - ), - age = dplyr::case_when( - grepl("InitAge", label) ~ stringr::str_extract(label, "(?<=InitAge_)[0-9]+"), - TRUE ~ NA - ), - year = dplyr::case_when( - grepl("RecrDev", label) ~ stringr::str_extract(label, "(?<=RecrDev_)[0-9]+$"), - grepl("_[0-9]{4}$", label) ~ stringr::str_extract(label, "[0-9]{4}$"), - TRUE ~ NA - ), - era = dplyr::case_when( - grepl("InitAge", label) ~ stringr::str_extract(label, "^.*?(?=_InitAge_[0-9]+$)"), - grepl("RecrDev", label) ~ stringr::str_extract(label, "^.*?(?=_RecrDev)"), - TRUE ~ NA - ), - fleet = dplyr::case_when( - grepl( - paste( - fleet_names, - collapse = "|" - ), - label - ) ~ stringr::str_extract(label, paste0("(^.*?_)?<=|", paste(fleet_names, collapse = "|"))), - TRUE ~ NA - ), - block = dplyr::case_when( - grepl("_BLK[0-9]repl_[0-9]{4}$", label) ~ stringr::str_extract(label, "(?<=_BLK)[0-9](?=repl_[0-9]{4}$)"), - TRUE ~ NA - ), - # Must be last step in mutate bc all info comes from the - label = dplyr::case_when( - grepl("?_month_[0-9]_?", label) ~ stringr::str_replace(label, "_?month_\\d?", ""), - grepl("?_area_[0-9]_?", label) ~ stringr::str_replace(label, "_?area_\\d?", ""), - grepl("InitAge", label) ~ "initial_age", - grepl("RecrDev", label) ~ "recruitment_deviations", - grepl( - paste0( - paste0( - "_", - fleet_names, - collapse = "|" - ), - "\\([0-9]+\\)_BLK[0-9]repl_[0-9]{4}$" - ), - label - ) ~ stringr::str_remove_all(label, "(Male_|Female_)|(_[[:alnum:]]+\\([0-9]+\\))|(_BLK[0-9]repl_[0-9]{4})"), - grepl("Male_|Female_", label) & grepl(paste0(paste0("_", fleet_names, collapse = "|"), "\\([0-9]+\\)"), label) ~ stringr::str_remove_all(label, "(Male_|Female_)|(_[[:alnum:]]+\\([0-9]+\\))"), - grepl(paste0(paste0("_", fleet_names, collapse = "|"), "\\([0-9]+\\)"), label) ~ stringr::str_remove(label, paste0(paste0("_", fleet_names, "\\([0-9]+\\)", collapse = "|"))), # , paste0("_", fleet_names, collapse = "|") - TRUE ~ stringr::str_extract(label, "^.*?(?=_\\d|_gp|_fem|_mal|_sx|:|$)") - ), - # fix remaining labels - label = ifelse(grepl("_GP$", label), stringr::str_remove(label, "_GP$"), label), - label = ifelse(grepl("_Fem|_Mal", label), stringr::str_remove(label, "_Fem$|_Mal$"), label), - label = ifelse(grepl(paste0(fleet_names, collapse = "|"), label), stringr::str_remove(label, paste0("_", fleet_names, collapse = "|")), label), - module_name = parm_sel - ) - # match to out_new - df4[setdiff(tolower(names(out_new)), tolower(names(df4)))] <- NA - # Add to out list - out_list[[parm_sel]] <- df4 - } else { - miss_parms <- c(miss_parms, parm_sel) - next - } - # miss_parms <- c(miss_parms, parm_sel) - # next - #### info #### - } else if (parm_sel %in% info) { - # if (parm_sel == "LIKELIHOOD") { - # df1 <- extract[-1, ] - # # make row the header names for first df - # colnames(df1) <- df1[1, ] - # # Remove first row containing column names - # df2 <- df1[-1, ] |> - # dplyr::rename(label = Component) |> - # tidyr::pivot_longer( - # cols = -label, - # names_to = "type", - # values_to = "likelihood" - # ) - # # match to out_new - # df2[setdiff(tolower(names(out_new)), tolower(names(df2)))] <- NA - # # Add to out list - # out_list[[parm_sel]] <- df2 - # } else - if (parm_sel == "DEFINITIONS") { - # Extract start year and end year for iding era - start_year <- as.numeric(extract[which(apply(extract, 1, function(row) any(row == "Start_year:"))), 2]) - end_year <- as.numeric(extract[which(apply(extract, 1, function(row) any(row == "End_year:"))), 2]) - # Pull out only the first two columns and remove first row keyword - # df1 <- extract[-1, 1:2] - # colnames(df1) <- c("label", "estimate") - # # find where rescale is located - # col_rescale <- grep("rescaled_to_sum_to:", extract) - # rescaled_months <- extract[4, col_rescale + 1] |> dplyr::pull() - # # remove : from all labels and tolower and add in rescaled months - # df2 <- df1 |> - # rbind(data.frame( - # label = "rescaled_months", - # estimate = rescaled_months - # )) |> - # dplyr::mutate( - # label = tolower(stringr::str_remove_all(label, ":")), - # module_name = parm_sel - # ) - # # match to out_new - # df2[setdiff(tolower(names(out_new)), tolower(names(df2)))] <- NA - # # Add to out list - # out_list[[parm_sel]] <- df2 - } else { - miss_parms <- c(miss_parms, parm_sel) - next - } - #### aa.al #### - } else if (parm_sel %in% aa.al) { - # 8,9,11,12,13,14,15,16,28,29 - if (is.character(file)) { - # remove first row - naming - df1 <- extract[-1, ] - # Find first row without NAs = headers - df2 <- df1[stats::complete.cases(df1), ] - # identify first row - row <- df2[1, ] - if (any(row %in% "XX")) { - loc_xx <- grep("XX", row) - row <- row[row != "XX"] - df1 <- df1[, -loc_xx] - } - - # TODO: apply this next if statement to a general process so it's part of the standard cleaning - # check if the headers make sense - # this is a temporary fix to a specific bug - # I have seen this issue in the past and I am not sure how to recognize this generally - if (any(parm_sel == "AGE_SELEX" & c("1", "2", "3") %notin% row)) { - rownum <- row_match(row, df1) - # Subset data frame - df1 <- df1[-c(1:rownum), ] - cols_to_keep <- which(sapply(df1, function(x) !all(is.na(x)))) - df1 <- df1 |> dplyr::select(dplyr::all_of(c(names(cols_to_keep)))) - df2 <- df1[stats::complete.cases(df1), ] - row <- df2[1, ] - } - - # make row the header names for first df - colnames(df1) <- row - - # find row number that matches 'row' - rownum <- row_match(row, df1) - # Subset data frame - df3 <- df1[-c(1:rownum), ] - colnames(df3) <- tolower(row) - } else { - # Remove XX columns left in dataframe - if (any("xx" %in% tolower(colnames(extract)))) { - # ID which cols contain XX - df3 <- extract[, -grep("xx", tolower(colnames(extract)))] - } else { - df3 <- extract - } - colnames(df3) <- tolower(colnames(df3)) - } - # aa.al names - naming <- c( - "biomass", "discard", "catch", - "f", "mean_size", "numbers", "Lsel", "sel", - "mean_body_wt", "natural_mortality" - ) - if (stringr::str_detect(tolower(parm_sel), paste(naming, collapse = "|"))) { - label <- stringr::str_extract(tolower(parm_sel), paste(naming, collapse = "|")) - if (length(label) > 1) cli::cli_alert_warning("Length of label is > 1.") - if (label == "f") { - label <- "fishing_mortality" - } - } else { - ( - # add conditions for naming label from aa.al - label <- switch(parm_sel, - # "sizeselex" = "selectivity_length", - "ageselex" = "selectivity_age", - "Natural_Mortality" = "natural_mortality_age", - "fatage" = "fishing_mortality_age", - "natage" = "abundance_age", - "batage" = "biomass_age", - "natlen" = "abundance_length", - "batlen" = "biomass_length", - "discard_at_age" = "discard_age", - "catage" = "catch_age", - "Z_at_age" = "total_mortality_age", - "M_at_age" = "natural_mortality_age", - "Z_by_area" = "total_mortality", - "M_by_area" = "natural_mortality" - ) - ) - } - if (grepl("age", tolower(parm_sel))) { - fac <- "age" - } else if (any(grepl("length|len", tolower(parm_sel)))) { - fac <- "len_bins" - } else if (any(grepl("size", tolower(parm_sel)))) { - fac <- "len_bins" - } else { - fac <- "age" - } - - # remove fac from label - if (grepl(glue::glue("_{fac}"), label)) label <- stringr::str_remove(label, glue::glue("_{fac}")) - - # Reformat dataframe - if (any(colnames(df3) %in% c("Yr", "yr"))) { - df3 <- df3 |> - dplyr::rename(year = yr) - } - if (any(colnames(df3) %in% c("seas"))) { - df3 <- df3 |> - dplyr::rename(season = seas) - } - if (any(colnames(df3) %in% c("subseas"))) { - df3 <- df3 |> - dplyr::rename(subseason = subseas) - } - # if ("label" %in% colnames(df3)) { - # df3 <- dplyr::select(df3, -tidyselect::any_of("label")) - # } - # If factor exists, set to label - if ("factor" %in% colnames(df3)) { - df3 <- df3 |> - dplyr::select(-tidyselect::any_of("label")) |> - dplyr::rename(label = factor) - } else if ("type" %in% colnames(df3)) { - df3 <- df3 |> - dplyr::mutate(label = glue::glue("{label}_{type}")) |> - dplyr::select(-type) - } else { - df3 <- dplyr::mutate(df3, label = label[1]) - } - # Change all columns to chatacters to a avoid issues in pivoting - this will be changed in final df anyway - df3 <- df3 |> - dplyr::mutate(dplyr::across(tidyselect::everything(), as.character)) - # Set all columns after factors as numeric - # Identify last factor col - other_factors <- c( - "bio_pattern", "birthseas", - "settlement", "morph", "beg/mid", - "type", "label", "label", - "platoon", "month", - "sexes", "part", "bin", "kind" - ) - num_cols <- setdiff(colnames(df3), c(factors, other_factors)) - df3 <- df3 |> - dplyr::mutate(dplyr::across(dplyr::all_of(num_cols), as.numeric)) - # Pivot table long - df4 <- df3 |> - tidyr::pivot_longer( - cols = -intersect(c(factors, errors, other_factors), colnames(df3)), - names_to = fac[1], - values_to = "estimate" - ) |> - dplyr::mutate( - # label = label[1], - module_name = parm_sel[1] - ) - if ("sex" %in% colnames(df4)) { - df4 <- df4 |> - dplyr::mutate( - sex = dplyr::case_when( - "sex" %in% colnames(df3) & sex == 1 ~ "female", - "sex" %in% colnames(df3) & sex == 2 ~ "male" - ) - ) - } - if (any(grepl("morph", colnames(df4)))) { - df4 <- df4 |> - dplyr::rename(growth_pattern = morph) - } - # Check if likelihood is in the df - if (any(grepl("like", colnames(df4)))) { - df4 <- df4 |> - dplyr::rename(likelihood = like) - } - # Rename beg/mid if present - if (any(grepl("beg/mid", colnames(df4)))) { - df4 <- df4 |> - dplyr::rename(beg_mid = "beg/mid") - } - # Check for error in the df - if (any(grepl(paste0("^", errors, "$", collapse = "|"), colnames(df4)))) { - error_col <- colnames(df4)[grep(paste0("^", errors, "$", collapse = "|"), colnames(df4))] - if (length(error_col) > 1) { - cli::cli_alert("Multiple error columns present. Error will not be added to module.") - } else { - df4 <- df4 |> - dplyr::mutate( - uncertainty_label = tolower(unique(error_col)), - uncertainty = df4[[error_col]] - ) - } - } - if ("label" %in% colnames(df4) & "factor" %in% colnames(df4)) { - df4 <- df4 |> - dplyr::select(-label) |> - dplyr::mutate(label = dplyr::case_when( - grepl("sel", factor) ~ "sel", - TRUE ~ factor - )) |> - dplyr::select(-factor) - } - # Bind to new df - df4[setdiff(tolower(names(out_new)), tolower(names(df4)))] <- NA - if (ncol(out_new) < ncol(df4)) { - diff <- setdiff(names(df4), names(out_new)) - cli::cli_alert_info(paste0("FACTORS REMOVED: ", parm_sel, " - ", paste(diff, collapse = ", "))) - # warning(parm_sel, " has more columns than the output data frame. The column(s) ", paste(diff, collapse = ", ")," are not found in the standard file. It was excluded from the resulting output. Please open an issue for developer fix.") - df4 <- dplyr::select(df4, -tidyselect::all_of(diff)) - out_list[[parm_sel]] <- df4 - } else { - out_list[[parm_sel]] <- df4 - } - # } else if (parm_sel %in% nn) { - # miss_parms <- c(miss_parms, parm_sel) - # next - } else { - cli::cli_alert_info(glue::glue("Processing {parm_sel}")) - miss_parms <- c(miss_parms, parm_sel) - next - } - } # close if param is in output file - #### skip parm in ss3 #### - } else { - if (is.character(file)) cli::cli_alert(glue::glue("Skipped [{i}] {parm_sel}")) - next - } - } # close loop - if (length(miss_parms) > 0) { - cli::cli_alert_info( - paste0("Some parameters were not found or included in the output file. The following parameters were not added into the new output file: \n", paste(miss_parms, collapse = "\n")) - ) - } - out_new <- Reduce(rbind, out_list) - out_new <- out_new |> - dplyr::mutate( - fleet = if (any(unique(out_new$fleet) %in% fleet_names)) fleet else fleet_names[fleet], - era = dplyr::case_when( - !is.na(era) ~ era, - year < start_year ~ "init", - year >= start_year & year <= end_year ~ "time", - year > end_year ~ "fore", - TRUE ~ NA_character_ - ) - ) + out_new <- conout_ss3(file = file, out_new = out_new, fleet_names = fleet_names) } else if (model %in% c("bam", "BAM")) { #### BAM #### - # Extract values from BAM output - model file after following ADMB2R - dat <- dget(file) - - # Find fleet names - if (is.null(fleet_names)) { - # Extract names from indices - indices <- dat$t.series |> - dplyr::select(dplyr::contains("U.") & dplyr::contains(".ob")) - fleets_ind <- stringr::str_extract(as.vector(colnames(indices)), "(?<=U\\.)\\w+(?=\\.ob)") - # Extract names from landings - landings <- dat$t.series |> - dplyr::select(dplyr::contains("L.") & dplyr::contains(".ob") | - dplyr::contains("D.") & dplyr::contains(".ob")) - fleets_land <- stringr::str_extract(as.vector(colnames(landings)), "(?<=L\\.)\\w+(?=\\.ob)") - fleets_disc <- stringr::str_extract(as.vector(colnames(landings)), "(?<=D\\.)\\w+(?=\\.ob)") - # Extract names from lof F dev - parm <- dat$parm.tvec |> - dplyr::select(dplyr::contains("log.F.dev.") | - dplyr::contains("log.F.dev.") & dplyr::contains(".D")) - # fleets_parm_D <- stringr::str_extract(as.vector(colnames(parm)), "(?<=log\\.F\\.dev\\.)\\w+(?=\\.D)") - fleets_parm <- stringr::str_extract(as.vector(colnames(parm)), "(?<=log\\.F\\.dev\\.)\\w+") - fleets <- unique(tolower(c(fleets_ind, fleets_land, fleets_disc, fleets_parm))) - fleet_names <- fleets[!is.na(fleets)] - if (any(is.na(fleet_names))) { - cli::cli_abort("No fleet names found in dataframe. Please indicate the abbreviations of fleet names using fleet_names arg.") - } - } # else { - # # check fleet names are input - # # if (any(is.na(fleet_names))) { - # fleet_names <- fleet_names - # } - # Output fleet names in console - cli::cli_alert_info("Identified fleet names:") - cli::cli_alert_info("{fleet_names}") - # Create list for morphed dfs to go into (for rbind later) - out_list <- list() - - factors <- c("year", "fleet", "fleet_name", "age", "sex", "area", "seas", "season", "time", "era", "subseas", "subseason", "platoon", "platoo", "growth_pattern", "gp", "nsim", "age_a") - errors <- c("StdDev", "sd", "se", "SE", "cv", "CV", "stddev") - units <- c("mt", "lbs", "eggs") - # argument for function when model == BAM - # fleet_names <- c("cl", "cL","cp","mrip","ct", "hb", "HB", "comm","Mbft","CVID") - - ##### BAM loop ---- - # Extract data from list fit to output df - # Loop over all items to output each object/transform - # Not transforming or including info chunk - for (p in 2:length(dat)) { - extract <- dat[p] - cli::cli_alert_info(glue::glue("Processing {names(extract)}")) - # is the object class matrix, list, or vector - if (is.vector(extract[[1]])) { - if (is.list(extract[[1]])) { # indicates vector and list - if (any(vapply(extract[[1]], is.matrix, FUN.VALUE = logical(1)))) { - extract_list <- list() - for (i in seq_along(extract[[1]])) { - if (is.vector(extract[[1]][[i]])) { - df <- as.data.frame(extract[[1]][i]) |> - tibble::rownames_to_column(var = "age") |> - tidyr::pivot_longer( - cols = -age, - values_to = "estimate", - names_to = "label" - ) |> - dplyr::mutate( - label = names(extract[[1]][i]), - # label_init = names(extract[[1]][i]), - fleet = dplyr::case_when( - grepl(paste(fleet_names, collapse = "|"), label) ~ stringr::str_extract(label, paste(fleet_names, collapse = "|")), - TRUE ~ NA - ), - module_name = names(extract), - label = dplyr::case_when( - grepl(paste(fleet_names, collapse = "|"), label) ~ stringr::str_replace(label, paste(".", fleet_names, sep = "", collapse = "|"), ""), - TRUE ~ label - ) - ) - df[setdiff(tolower(names(out_new)), tolower(names(df)))] <- NA - extract_list[[names(extract[[1]][i])]] <- df - } else { - df <- as.data.frame(extract[[1]][[i]]) |> - tibble::rownames_to_column(var = "year") - df <- df |> - dplyr::rename_with( - ~ ifelse(max(as.numeric(df$year)) < 50, - c("age_a"), c("year") - ), - year - ) - if (grepl("lcomp", names(extract[[1]][i]))) { - namesto <- "len_bins" - } else if (grepl("acomp", names(extract[[1]][i]))) { - namesto <- "age" - } else { - # Default - namesto <- "age" - } - df2 <- df |> - tidyr::pivot_longer( - cols = -intersect(colnames(df), c("year", "age_a")), - names_to = namesto, - values_to = "estimate" - ) |> - dplyr::mutate( - module_name = names(extract), - label = names(extract[[1]][i]), - fleet = dplyr::case_when( - grepl(paste(fleet_names, collapse = "|"), tolower(label)) ~ stringr::str_extract(tolower(label), paste(fleet_names, collapse = "|")), - TRUE ~ NA - ), # stringr::str_extract(module_name, "(?<=\\.)\\w+(?=\\.)"), - label = dplyr::case_when( - grepl(paste0(fleet_names, collapse = "|"), tolower(label)) ~ stringr::str_replace(tolower(label), paste0(".", fleet_names, collapse = "|"), ""), - TRUE ~ names(extract[[1]][i]) - ) - # label_init = names(extract[[1]][i]), - - # label = dplyr::case_when( - # is.na(fleet) ~ names(extract[[1]][i]), - # TRUE ~ stringr::str_replace(tolower(label), paste(".", fleet_names, sep = "", collapse = "|"), "") - # ) - ) # stringr::str_replace(module_name, "\\.[^.]+\\.", ".")) - df2[setdiff(tolower(names(out_new)), tolower(names(df2)))] <- NA - extract_list[[names(extract[[1]][i])]] <- df2 - } # close if statement - } # close for loop - new_df <- Reduce(rbind, extract_list) - out_list[[names(extract)]] <- new_df - } else if (any(vapply(extract[[1]], is.vector, FUN.VALUE = logical(1)))) { # all must be a vector to work - so there must be conditions for dfs with a mix - df <- data.frame(extract[[1]]) - if (length(intersect(colnames(df), c(factors, errors))) > 0) { - df2 <- df |> - tidyr::pivot_longer( - cols = -intersect(colnames(df), c(factors, errors)), - names_to = "label", - values_to = "estimate" - ) |> - dplyr::mutate(module_name = names(extract)) - } else { - df2 <- df |> - tidyr::pivot_longer( - cols = tidyselect::everything(), - names_to = "label", - values_to = "estimate" - ) |> - dplyr::mutate(module_name = names(extract)) - } - if (any(grepl(paste(fleet_names, collapse = "|"), unique(df2$label)))) { - df2 <- df2 |> - dplyr::mutate( - fleet = dplyr::case_when( - grepl(paste(fleet_names, collapse = "|"), tolower(label)) ~ stringr::str_extract(tolower(label), paste(fleet_names, collapse = "|")), - # grepl(paste(fleet_names, collapse = "|"), label) ~ stringr::str_extract(ex, paste(fleet_names,collapse="|")), - TRUE ~ NA - ), - # Number after fleet name is what? variable among df? - age = dplyr::case_when( - grepl("r0$|b0$", tolower(label)) ~ NA, - module_name != "parms" & grepl(".Age[0-9]+.", label) ~ stringr::str_extract(label, "(?<=.Age?)[0-9]+"), - module_name != "parms" & grepl("[0-9]+$", label) & as.numeric(stringr::str_extract(label, "[0-9]+$")) < 30 ~ stringr::str_extract(label, "[0-9]+$"), - module_name != "parms" & grepl("_age[0-9]+.", label) ~ stringr::str_extract(label, "(?<=_age?)[0-9]+"), - TRUE ~ NA - ), - label = dplyr::case_when( - # below will only work properly if there are age varying parameters without fleet names in it - module_name == "parms" & !grepl(paste(".", fleet_names, sep = "", collapse = "|"), tolower(label)) ~ label, - module_name == "parm.cons" & !grepl(paste("_", fleet_names, sep = "", collapse = "|"), tolower(label)) ~ label, - grepl(paste(".", fleet_names, "d[0-9]+", sep = "", collapse = "|"), tolower(label)) ~ stringr::str_replace(tolower(label), paste(".", fleet_names, "d[0-9]+", sep = "", collapse = "|"), ".d"), - grepl(paste(".", fleet_names, "[0-9]+$", sep = "", collapse = "|"), tolower(label)) ~ stringr::str_replace(tolower(label), paste(fleet_names, sep = "", collapse = "|"), ""), # "[0-9]+", - grepl(paste(".", fleet_names, "$", sep = "", collapse = "|"), tolower(label)) ~ stringr::str_replace(tolower(label), paste(".", fleet_names, sep = "", collapse = "|"), ""), - grepl(paste("_", fleet_names, "_", sep = "", collapse = "|"), tolower(label)) ~ stringr::str_replace(tolower(label), paste("_", fleet_names, sep = "", collapse = "|"), ""), - grepl(paste(".", fleet_names, ".d$", sep = "", collapse = "|"), tolower(label)) ~ stringr::str_replace(tolower(label), paste(".", fleet_names, sep = "", collapse = "|"), ""), - grepl(".Age[0-9]+.[a-z]+", label) ~ stringr::str_replace(label, ".Age[0-9]+.[a-z]+", ""), - grepl("[0-9]+$", label) ~ stringr::str_replace(label, "[0-9]+$", ""), - # !is.na(fleet) | !is.na(age) ~ stringr::str_replace(label, paste(c(paste(".", fleet_names, "[0-9]+", sep = ""), ".Age[0-9]+.[a-z]+", "[0-9]+$"), collapse = "|"), ""), - # as.numeric(stringr::str_extract(label, "[0-9]+$")) == 0 ~ label, - # as.numeric(stringr::str_extract(label, "[0-9]+$")) < 30 ~ stringr::str_remove(label, "[0-9]+$"), - TRUE ~ label - ), - # additional manipulation of label to remove age in parm.cons - label = dplyr::case_when( - module_name == "parm.cons" & grepl("_age[0-9]+.[a-z]+", label) ~ stringr::str_replace(label, "_age[0-9]+.[a-z]+", ""), - TRUE ~ label - ) - ) - } else if (any(grepl("[0-9]$", unique(df2$label)))) { - df2 <- df2 |> - dplyr::mutate( - fleet = NA, - # Number after fleet name is what? variable among df? - age = dplyr::case_when( - grepl("[0-9]+$", label) & stringr::str_extract(label, "[0-9]+$") < 30 ~ stringr::str_extract(label, "[0-9]+$"), - TRUE ~ NA - ), - # label_init = label, - label = dplyr::case_when( - as.numeric(stringr::str_extract(label, "[0-9]+$")) == 0 ~ label, - as.numeric(stringr::str_extract(label, "[0-9]+$")) < 30 ~ stringr::str_remove(label, "[0-9]+$"), - TRUE ~ label - ) - ) - } else { - df2 <- df2 |> - dplyr::mutate( - fleet = ifelse("age" %in% colnames(df2), fleet, NA), - age = ifelse("age" %in% colnames(df2), age, NA), - label = label, - module_name = names(extract) - ) - } - df2[setdiff(tolower(names(out_new)), tolower(names(df2)))] <- NA - out_list[[names(extract)]] <- df2 - } else { - cli::cli_alert_warning("Not compatible.") - } - } else { # vector only - df <- as.data.frame(extract) |> - tibble::rownames_to_column(var = "label") |> - tidyr::pivot_longer( - cols = -label, - names_to = "module_name", - values_to = "estimate" - ) - if (any(grepl("age", colnames(df)))) { - df <- df |> - tidyr::pivot_longer( - cols = -intersect(c(factors, errors), colnames(df)), - names_to = "age", - values_to = "estimate" - ) |> - dplyr::mutate( - label = names(extract[[1]]), - age = dplyr::case_when( - grepl(".[0-9]$", age) ~ stringr::str_extract(age, "[0-9]"), - grepl(".[0-9][0-9]$", age) ~ stringr::str_extract(age, "[0-9][0-9]"), - TRUE ~ NA - ), - module_name = names(extract) - ) - } - if (any(grepl(paste(fleet_names, collapse = "|"), df$label))) { - df <- df |> - dplyr::mutate( - fleet = dplyr::case_when( - grepl(paste(fleet_names, collapse = "|"), label) ~ stringr::str_extract(label, paste(fleet_names, collapse = "|")), - TRUE ~ NA - ), - label = dplyr::case_when( - is.na(fleet) ~ label, - TRUE ~ stringr::str_replace(label, paste(".", fleet_names, sep = "", collapse = "|"), "") - ) - ) - } - df[setdiff(tolower(names(out_new)), tolower(names(df)))] <- NA - out_list[[names(extract)]] <- df - } - } else if (is.list(extract[[1]])) { # list only - if (any(vapply(extract[[1]], is.matrix, FUN.VALUE = logical(1)))) { - extract_list <- list() - for (i in seq_along(extract[[1]])) { - if (is.vector(extract[[1]][[i]])) { - df <- as.data.frame(extract[[1]][i]) |> - tibble::rownames_to_column(var = "age") |> - tidyr::pivot_longer( - cols = -age, - values_to = "estimate", - names_to = "label" - ) |> - dplyr::mutate( - label = names(extract[[1]][i]), - # label_init = names(extract[[1]][i]), - fleet = dplyr::case_when( - grepl(paste(fleet_names, collapse = "|"), label) ~ stringr::str_extract(label, paste(fleet_names, collapse = "|")), - TRUE ~ NA - ), - module_name = names(extract), - label = dplyr::case_when( - grepl(paste(fleet_names, collapse = "|"), label) ~ stringr::str_replace(label, paste(".", fleet_names, sep = "", collapse = "|"), ""), - TRUE ~ label - ) - ) - df[setdiff(tolower(names(out_new)), tolower(names(df)))] <- NA - extract_list[[names(extract[[1]][i])]] <- df - } else { - df <- as.data.frame(extract[[1]][[i]]) |> - tibble::rownames_to_column(var = "year") - if (grepl("lcomp", names(extract[[1]][i]))) { - namesto <- "len_bins" - } else if (grepl("acomp", names(extract[[1]][i]))) { - namesto <- "age" - } else { - # Default - namesto <- "age" - } - df2 <- df |> - tidyr::pivot_longer( - cols = -year, - names_to = namesto, - values_to = "estimate" - ) |> - dplyr::mutate( - module_name = names(extract), - label = names(extract[[1]][i]), - # label_init = names(extract[[1]][i]), - fleet = dplyr::case_when( - grepl(paste(fleet_names, collapse = "|"), label) ~ stringr::str_extract(label, paste(fleet_names, collapse = "|")), - TRUE ~ NA - ), # stringr::str_extract(module_name, "(?<=\\.)\\w+(?=\\.)"), - label = dplyr::case_when( - is.na(fleet) ~ names(extract[[1]][i]), - TRUE ~ stringr::str_replace(label, paste(".", fleet_names, sep = "", collapse = "|"), "") - ) - ) # stringr::str_replace(module_name, "\\.[^.]+\\.", ".")) - df2[setdiff(tolower(names(out_new)), tolower(names(df2)))] <- NA - extract_list[[names(extract[[1]][i])]] <- df2 - } # close if statement - } # close for loop - new_df <- Reduce(rbind, extract_list) - out_list[[names(extract)]] <- new_df - } else if (any(sapply(extract[[1]], is.vector))) { # all must be a vector to work - so there must be conditions for dfs with a mix - df <- data.frame(extract[[1]]) - if (max(as.numeric(row.names(df))) < 1000) { - fac <- "age" - } else if (1000 < max(as.numeric(row.names(df))) & max(as.numeric(row.names(df))) < 2100) { - fac <- "year" - } else { - fac <- "nsim" - } - if (any(colnames(df) %in% c("age", "year"))) { - df <- df - } else { - if (fac == "year") { - df <- tibble::rowid_to_column(df, var = fac) |> - dplyr::mutate(year = as.character(year)) - } else if (fac == "age") { - df <- tibble::rowid_to_column(df, var = fac) |> - dplyr::mutate(age = as.character(age)) - } else if (fac == "nsim") { - df <- tibble::rowid_to_column(df, var = fac) |> - dplyr::mutate(nsim = as.character(nsim)) - } else { - cli::cli_alert_warning("Not compatible") - } - } - # # Check if any col names contain error then select - # if (any(grepl(paste0(errors, collapse = "|"), colnames(df)))) { - # error_cols <- grep(paste0(errors, ".", collapse = "|"), colnames(df)) - # } else { - # error_cols <- NULL - # } - if (length(intersect(colnames(df), c(factors, errors))) > 0) { - df2 <- df |> - tidyr::pivot_longer( - cols = -intersect(colnames(df), c(factors, errors)), - names_to = "label", - values_to = "estimate" - ) |> - dplyr::mutate(module_name = names(extract)) - } else { - df2 <- df |> - tidyr::pivot_longer( - cols = tidyselect::everything(), - names_to = "label", - values_to = "estimate" - ) |> - dplyr::mutate(module_name = names(extract)) - } - if (any(grepl(paste(fleet_names, collapse = "|"), tolower(unique(df2$label))))) { - if ("age" %in% colnames(df2)) { - df2 <- df2 - } else { - df2 <- df2 |> - dplyr::mutate(age = NA) - } - df2 <- df2 |> - dplyr::mutate( - label = tolower(label), - fleet = dplyr::case_when( - grepl(paste(fleet_names, collapse = "|"), label) ~ stringr::str_extract(label, paste(fleet_names, collapse = "|")), - # grepl(paste(fleet_names, collapse = "|"), label) ~ stringr::str_extract(ex, paste(fleet_names,collapse="|")), - TRUE ~ NA - ), - # Number after fleet name is what? variable among df? - age = dplyr::case_when( - is.na(as.numeric(age)) & grepl("_age[0-9]+_", label) ~ as.numeric(stringr::str_extract(label, "(?<=age:?)[0-9]+")), - is.na(as.numeric(age)) & grepl("[0-9]+$", label) ~ as.numeric(stringr::str_extract(label, "[0-9]+$")), # this is not age - TRUE ~ as.numeric(age) - ), - # area = dplyr::case_when(is.na(age) & grepl("[0-9]+$", label) ~ stringr::str_extract(label, "[0-9]+$"), # this is not age - # TRUE ~ NA), - # Uncomment when units gets added in - # units = dplyr::case_when( - # grepl(paste(units, collapse = "|"), label) ~ stringr::str_extract(label, paste(units, collapse = "|")), - # TRUE ~ NA - # ), - label = dplyr::case_when( - # grepl("_age[0-9]_", label) & grepl(paste("_", fleet_names, "[0-9]+", sep = "", collapse = "|"), label) ~ stringr::str_replace(label, paste("_age[0-9]+_", fleet_names, "[0-9]+", sep = "", collapse = "|"), ""), - # grepl("_age[0-9]_", label) & grepl(paste("_", fleet_names, sep = "", collapse = "|"), label) ~ stringr::str_replace(label, paste("_age[0-9]+_", fleet_names, sep = "", collapse = "|"), ""), - # grepl("_age[0-9]_", label) ~ stringr::str_replace(label, "_age[0-9]+_", ""), - # grepl(paste0(rep(fleet_names, times = length(units)), ".", units, collapse = "|"), label) ~ stringr::str_replace(label, paste0(".", rep(fleet_names, times = length(units)), ".", units, collapse = "|"), ""), - grepl(paste("_", fleet_names, "[0-9]+$", sep = "", collapse = "|"), label) ~ stringr::str_replace(label, paste("_", fleet_names, "[0-9]+$", sep = "", collapse = "|"), ""), - grepl(paste("_", fleet_names, sep = "", collapse = "|"), label) ~ stringr::str_replace(label, paste("_", fleet_names, sep = "", collapse = "|"), ""), - grepl(paste(".", fleet_names, "[0-9]+$", sep = "", collapse = "|"), label) ~ stringr::str_replace(label, paste(fleet_names, sep = "", collapse = "|"), ""), - grepl(paste(fleet_names, ".", sep = "", collapse = "|"), label) ~ stringr::str_replace(label, paste(fleet_names, ".", sep = "", collapse = "|"), ""), - grepl(paste(".", fleet_names, "d[0-9]+$", sep = "", collapse = "|"), label) ~ stringr::str_replace(label, paste(".", fleet_names, "d[0-9]+$", sep = "", collapse = "|"), ""), - grepl(paste(".", fleet_names, sep = "", collapse = "|"), label) ~ stringr::str_replace(label, paste(".", fleet_names, sep = "", collapse = "|"), ""), - grepl(paste(fleet_names, "[0-9]+$", collapse = "|"), label) ~ stringr::str_replace(label, "[0-9]+$", ""), - TRUE ~ label - ) - ) - } else if (any(grepl("[0-9]$", unique(df2$label)))) { - df2 <- df2 |> - dplyr::mutate( - fleet = NA, - # Number after fleet name is what? variable among df? - age = dplyr::case_when( - grepl("[0-9]+$", label) & stringr::str_extract(label, "[0-9]+$") < 30 ~ stringr::str_extract(label, "[0-9]+$"), - TRUE ~ NA - ), - # label_init = label, - label = dplyr::case_when( - as.numeric(stringr::str_extract(label, "[0-9]+$")) == 0 ~ label, - # issue here that stocks with ages > 29 will not be extracted - maybe add condition if F, t or other preceeeds the number then don't extract? - as.numeric(stringr::str_extract(label, "[0-9]+$")) < 30 ~ stringr::str_remove(label, "[0-9]+$"), - TRUE ~ label - ) - ) - } else { - df2 <- df2 |> - dplyr::mutate( - fleet = ifelse(any(colnames(df2) %in% c("fleet")), fleet, NA), - age = ifelse(any(colnames(df2) %in% c("age")), fleet, NA), - label = label, - module_name = names(extract) - ) - } - # Move error into column - if (any(grepl(paste0("^", errors, "\\.", collapse = "|"), unique(df2$label)))) { - # Pivot wider only the cv labels and align with their counter part estimate label - error_data <- df2 |> - dplyr::filter(stringr::str_detect(label, paste0("^", errors, ".", collapse = "|"))) |> - dplyr::mutate(match_key = stringr::str_remove(label, paste0("^", errors, ".", collapse = "|"))) |> - dplyr::mutate(uncertainty_label = stringr::str_extract(label, paste0(errors, collapse = "|"))) |> - dplyr::select(year, fleet, match_key, uncertainty = estimate, uncertainty_label) - # filter out error labels - df2_filtered <- df2 |> - dplyr::filter(!stringr::str_detect(label, paste0("^", errors, collapse = "|"))) |> - dplyr::mutate(match_key = stringr::str_extract(label, "^[A-Za-z]+")) - # Join the errors to the final df - df2 <- df2_filtered |> - dplyr::left_join(error_data, by = c("year", "fleet", "match_key")) |> - dplyr::select(-match_key) - } - df2[setdiff(tolower(names(out_new)), tolower(names(df2)))] <- NA - out_list[[names(extract)]] <- df2 - } else { - cli::cli_alert_warning("Not compatible.") - } - } else if (is.matrix(extract[[1]])) { # matrix only - df <- as.data.frame(extract[[1]]) |> - tibble::rownames_to_column(var = "year") - if (grepl("length", names(extract))) { - namesto <- "len_bins" - } else if (grepl("age", names(extract))) { - namesto <- "age" - } else { - # Default - namesto <- "age" - } - df2 <- df |> - tidyr::pivot_longer( - cols = -year, - names_to = namesto, - values_to = "estimate" - ) |> - dplyr::mutate( - module_name = names(extract), - label = names(extract), - # label_init = names(extract[[1]][i]), - fleet = dplyr::case_when( - grepl(paste(fleet_names, collapse = "|"), label) ~ stringr::str_extract(label, paste(fleet_names, collapse = "|")), - TRUE ~ NA - ), # stringr::str_extract(module_name, "(?<=\\.)\\w+(?=\\.)"), - label = dplyr::case_when( - is.na(fleet) ~ names(extract), - TRUE ~ stringr::str_replace(label, paste(".", fleet_names, sep = "", collapse = "|"), "") - ) - ) # stringr::str_replace(module_name, "\\.[^.]+\\.", ".")) - df2[setdiff(tolower(names(out_new)), tolower(names(df2)))] <- NA - out_list[[names(extract)]] <- df2 - } else { - cli::cli_alert_warning(paste(names(extract), " not compatible.", sep = "")) - } # close if statement - } # close loop over objects listed in dat file - - # Place out_list into a single data frame - # VIRG, INIT, TIME, FORE - out_new <- Reduce(rbind, out_list) |> - # Add era as factor into BAM conout - dplyr::mutate( - # TODO: replace all periods with underscore if naming convention is different - label = tolower(label) - ) - if (model == "bam") { - out_new <- dplyr::mutate( - out_new, - era = dplyr::case_when( - year < dat$parms$styr ~ "init", - year >= dat$parms$styr & year <= dat$parms$endyr ~ "time", - year > dat$parms$endyr ~ "fore", - TRUE ~ NA - ) - ) - } + out_new <- conout_bam(file = file, out_new = out_new, fleet_names = fleet_names) #### WHAM ---- } else if (model == "wham") { @@ -1987,486 +217,7 @@ convert_output <- function( out_new <- fims_output #### Rceattle #### } else if (model == "rceattle") { - # Want to extract and set values from: - # quantities, sdrep, and estimated_params - # take similar approach to SS3 when only some keywords were converted - # can late take approach like BAM? - # TODO: Do we want users to input the saved file or already loaded into the R environment? - if (is.character(file)) { - # Anchored and case-insensitive: saveRDS() output is conventionally named - # either .rds or .RDS, and the real assessment files this targets use the - # latter. The unanchored, case-sensitive form rejected them. - if (!grepl("\\.rds$", file, ignore.case = TRUE)) { - cli::cli_abort("File must be in an .rds format otherwise load data into your environment and run `convert_output()` using the loaded data.") - } - dat <- readRDS(file) - } else { - dat <- file - } - - # The standardized output describes one stock and has no species dimension, - # but CEATTLE is a multispecies model. A multispecies fit's `sdrep` holds - # nspp * nyrs values per label, which fails the `n == length(styr:projyr)` - # test used to attach years below, so every biomass / spawning biomass / - # recruitment value would silently come back with `year = NA`. Refuse - # instead: a converted file that quietly merges two stocks is worse than no - # converted file. - # `[[` rather than `$`: `$` partial-matches, so a renamed element would - # return something else and skip the refusal. - if (!"data_list" %in% names(dat)) { - cli::cli_abort(c( - "Rceattle fit has no {.field data_list} element.", - i = "The catch, index and composition data are read from it." - )) - } - nspp <- dat[["data_list"]][["nspp"]] - if (is.null(nspp)) { - cli::cli_abort(c( - "Rceattle fit does not report {.field nspp}, so its species count is unknown.", - i = "The standardized output has no species dimension and must not merge stocks." - )) - } - if (nspp > 1) { - cli::cli_abort(c( - "Rceattle model has {nspp} species, and the standardized output has no species dimension.", - i = "Subset the fit to a single species before converting." - )) - } - - # Extract or use fleet names - if (is.null(fleet_names)) { - fleet_names <- names(dat$estimated_params$index_log_q) - } - - # Output fleet names in console - cli::cli_alert_info("Identified fleet names:") - cli::cli_alert_info("{fleet_names}") - # Create list for morphed dfs to go into (for rbind later) - out_list <- list() - - factors <- c("year", "fleet", "fleet_name", "age", "sex", "area", "seas", "season", "time", "era", "subseas", "subseason", "platoon", "platoo", "growth_pattern", "gp", "nsim", "age_a") - errors <- c("StdDev", "sd", "se", "SE", "cv", "CV", "stddev") - # units <- c("mt", "lbs", "eggs") - - ##### Loop #### - # Select the modules by name rather than by position. An Rceattle fit's - # element list depends on how it was fitted -- `phase = TRUE` adds - # `.conv_phase` and `phase_params`, and `getsd = FALSE` drops `sdrep` -- so a - # fixed offset selects different modules for different fits of the same - # model. Under `phase = TRUE` the positional form dropped `data_list` and - # passed `obj` to the generic vector handler below, which aborts with - # "attempt to select less than one element in OneIndex". - # - # `sdrep` carries every derived time series, so without it the output holds - # only the input data. Say so rather than returning a table whose biomass - # and recruitment are simply absent. - if (!"sdrep" %in% names(dat)) { - cli::cli_warn(c( - "Rceattle fit has no {.field sdrep}, so the converted output has no biomass, spawning biomass or recruitment.", - i = "Refit with {.code fit_control(getsd = TRUE)} to standardize the derived time series." - )) - } - for (module_name in intersect(c("sdrep", "data_list", "quantities"), names(dat))) { - extract <- dat[module_name] - cli::cli_alert_info("Processing {module_name}") - if (module_name == "sdrep") { - ##### sdrep #### - # this does not include all elements from sdrep list - df <- extract[[1]] - # Extract values from sdrep element in listdrep - values <- data.frame( - label = names(extract[[1]]$value), - estimate = extract[[1]]$value, - uncertainty = extract[[1]]$sd, - uncertainty_label = "sd" - ) - values_count <- values |> - dplyr::group_by(label) |> - dplyr::count() - values <- values |> - dplyr::left_join( - { - values |> - dplyr::group_by(label) |> - dplyr::count() - }, - by = "label" - ) - # make year column - year_col <- rep( - dat[["data_list"]]$styr:dat[["data_list"]]$projyr, - length(unique( - dplyr::filter(values_count, n == length(dat[["data_list"]]$styr:dat[["data_list"]]$projyr)) |> - dplyr::pull(label) - )) - ) - - df2 <- values |> - dplyr::filter(n == length(dat[["data_list"]]$styr:dat[["data_list"]]$projyr)) |> - dplyr::mutate(year = year_col) - - df2 <- values |> - dplyr::filter( - n != length(dat[["data_list"]]$styr:dat[["data_list"]]$projyr) - ) |> - dplyr::mutate(year = NA) |> - rbind(df2) - - # Extract parameter values ts - # The standard errors of the fixed effects are the square root of the - # diagonal of cov.fixed, in the same order as par.fixed. - has_cov_fixed <- !is.null(extract[[1]]$cov.fixed) - par_fixes <- data.frame( - label = names(extract[[1]]$par.fixed), - estimate = extract[[1]]$par.fixed, - uncertainty = if (has_cov_fixed) sqrt(diag(extract[[1]]$cov.fixed)) else NA_real_, - uncertainty_label = if (has_cov_fixed) "sd" else NA_character_ - ) - # Random effects, such as rec_dev under random_rec = TRUE, are in - # par.random rather than par.fixed. Their variances are in - # diag.cov.random. - if (length(extract[[1]]$par.random) > 0) { - has_cov_random <- !is.null(extract[[1]]$diag.cov.random) - par_fixes <- rbind( - par_fixes, - data.frame( - label = names(extract[[1]]$par.random), - estimate = extract[[1]]$par.random, - uncertainty = if (has_cov_random) sqrt(extract[[1]]$diag.cov.random) else NA_real_, - uncertainty_label = if (has_cov_random) "sd" else NA_character_ - ) - ) - } - par_fixes_count <- par_fixes |> - dplyr::group_by(label) |> - dplyr::count() - par_fixes <- par_fixes |> - dplyr::left_join( - par_fixes_count, - by = "label" - ) - - year_col_par_fix <- rep( - dat[["data_list"]]$styr:dat[["data_list"]]$endyr, - length(unique( - dplyr::filter(par_fixes_count, n == length(dat[["data_list"]]$styr:dat[["data_list"]]$endyr)) |> - dplyr::pull(label) - )) - ) - - df3 <- par_fixes |> - dplyr::filter(n == length(dat[["data_list"]]$styr:dat[["data_list"]]$endyr)) |> - dplyr::mutate(year = year_col_par_fix) - df3 <- par_fixes |> - dplyr::filter( - n != length(dat[["data_list"]]$styr:dat[["data_list"]]$endyr) - ) |> - dplyr::mutate(year = NA) |> - rbind(df3) - # not sure how pop_scalar is indexed - # not sure how log_index_hat is indexes - # Did not use r_sd for the error in rec bc used it from the other element in the list - - df4 <- rbind(df2, df3) |> - dplyr::select(-n) |> - dplyr::mutate( - module_name = module_name - ) - - df4[setdiff(tolower(names(out_new)), tolower(names(df4)))] <- NA - out_list[[names(extract)]] <- df4 - } else if (module_name == "data_list") { - ###### data.list #### - # Only extract specific quantity needs - # comp_data?, index_data, catch_data, weight, Ftarget, Flimit - data_list_list <- list() - - ####### Indices #### - # Extract index_data - df_index <- extract[[1]]$index_data |> - # rename all columns to lower case to match standard - dplyr::rename_with(tolower) |> - dplyr::rename( - fleet = fleet_name, - indices_observed = observation, - block = selectivity_block, - uncertainty = log_sd - ) |> - dplyr::mutate( - # label = "index_observed", - uncertainty_label = "log_sd", - indices_predicted = dat$quantities$index_hat - ) |> - # any_of(): `Q_block` is deprecated in Rceattle and no longer written - # to `index_data`, so naming it directly fails on a current fit while - # still needing to be dropped from an older one. - dplyr::select(-dplyr::any_of(c("fleet_code", "q_block"))) - cli::cli_alert_info("'Selectivity_block' values located in 'block' columns.") - - # check if species > 1 - if (length(unique(df_index$species)) > 1) { - cli::cli_abort("Not currently compatible for multispecies.") - } else { - df_index <- df_index |> - dplyr::select(-species) - } - - # expand df long to have obs and pred in same column with label - df_index_long <- df_index |> - tidyr::pivot_longer( - cols = c(indices_observed, indices_predicted), - names_to = "label", - values_to = "estimate" - ) |> - dplyr::mutate( - module_name = names(extract), - # era = dplyr::if_else( - # year > dat$data_list$endyr, - # "fore", - # NA_character_ - # ) - label = stringr::str_replace_all(label, "indices", "index") - ) - - df_index_long[setdiff(tolower(names(out_new)), tolower(names(df_index_long)))] <- NA - data_list_list[["index_data"]] <- df_index_long - - ####### Catch indexing #### - # Extract catch_data and align with log_index_hat and catch_h - # Modify sdrep in outlist to include index - df_catch <- extract[[1]]$catch_data |> - # dplyr::filter(!is.na(Catch)) |> - dplyr::rename_with(tolower) |> - dplyr::mutate( - module_name = names(extract), - # Set the era here from the year, as the index and composition - # frames do, so the frame is complete where it is built. The mutate - # at the end of the branch recomputes it the same way. - era = dplyr::if_else( - year > dat$data_list$endyr, - "fore", - "time" - ), - catch_h = dat$quantities$catch_hat, - # TODO: follow up on this quantity - # log_index_hat = dat$quantities$log_index_hat - uncertainty_label = "log_sd" - ) |> - dplyr::rename( - catch_predicted = catch_h, - fleet = fleet_name, - block = selectivity_block, - uncertainty = log_sd - ) |> - tidyr::pivot_longer( - cols = c(catch, catch_predicted), - names_to = "label", - values_to = "estimate" - ) |> - dplyr::select(-c(fleet_code, species)) - - # Remove fleet names if do not match object - # if (unique(df_catch$fleet) %notin% fleet_names) { - # df_catch <- df_catch |> - # dplyr::mutate(fleet = NA) - # } - - if (length(unique(df_catch$month)) == 1) { - df_catch$month <- NA - } - df_catch[setdiff(tolower(names(out_new)), tolower(names(df_catch)))] <- NA - data_list_list[["catch_data"]] <- df_catch - - ####### Comp indexing #### - df_comp_obs <- dat$data_list$comp_data |> - dplyr::rename_with(tolower) |> - dplyr::mutate( - label = "index_observed" - ) - - indexing_vars_cols <- colnames(df_comp_obs)[!grepl("comp", colnames(df_comp_obs))] - - # `age_hat` holds one row per row of `comp_data`, in the same order, so - # it binds column-wise. cross_join() paired every observation with the - # whole prediction matrix instead, which is a Cartesian product: on the - # GOAatf fixture it returned the 2,478 correct predictions 59 times - # over, once per row of comp_data, for 146,202 in all. - age_hat <- as.data.frame(dat$quantities$age_hat) - names(age_hat) <- paste0("agehat_", seq_len(ncol(age_hat))) - df_comp_pred <- dplyr::select(df_comp_obs, dplyr::all_of(indexing_vars_cols)) |> - cbind(age_hat) |> - tidyr::pivot_longer( - cols = -dplyr::all_of(indexing_vars_cols), - names_to = "age", - values_to = "estimate" - ) |> - # removes the 0 so assuming there will be no recorded zero catch but Rceattle reports ages up to 117 - dplyr::filter(estimate != 0) |> - dplyr::mutate( - label = "composition_predicted", - # NOTE: the below age mutate slows down code - age = stringr::str_replace(age, "agehat_", "") - ) - - # Finish adjusting comp_obs - # pivot obs data - df_comp_obs <- df_comp_obs |> - tidyr::pivot_longer( - cols = -dplyr::all_of(indexing_vars_cols), - names_to = "age", - values_to = "estimate" - ) |> - dplyr::filter(!is.na(estimate)) |> - dplyr::mutate( - label = "composition_observed", - # NOTE: the below age mutate slows down code - age = stringr::str_replace(age, "comp_", "") - ) - - df_comp <- rbind(df_comp_obs, df_comp_pred) |> - # Match the index and catch frames: the standard names the fleet - # `fleet`, carries no `fleet_name` or `species`, and every row states - # which module it came from. - dplyr::rename(fleet = fleet_name) |> - dplyr::mutate(module_name = names(extract)) |> - dplyr::select(-dplyr::any_of("species")) |> - # TODO: do I need to filter sample size by <3 for confidentiality or does this not apply? - dplyr::select(-c(age0_length1, fleet_code, sample_size)) - - df_comp[setdiff(tolower(names(out_new)), tolower(names(df_comp)))] <- NA - data_list_list[["comp_data"]] <- df_comp - - # final df for data_list module - # rbind() rather than bind_rows(): every frame has already been padded - # to the standard column set above, so rbind() succeeds and keeps the - # column contract -- it aborts on a frame carrying an extra column, - # where bind_rows() would silently widen the output. - new_df <- Reduce(rbind, data_list_list) - out_list[[names(extract)]] <- new_df - } else if (module_name == "quantities") { - ###### quantities #### - # Only selectivity and natural mortality at age for now. Both are - # [fleet or species, sex, age, year] arrays. The age dimension is the - # bin index, so the age itself is offset by minage. - ages <- dat[["data_list"]][["minage"]] - 1 + - seq_len(dat[["data_list"]][["nages"]]) - nsex <- dat[["data_list"]][["nsex"]] - # Rceattle stores sex 1 as females, or both sexes when nsex = 1. - sex_names <- if (nsex == 1) NA_character_ else c("female", "male") - quantities_list <- list() - - if ("sel_at_age" %in% names(extract[[1]])) { - sel <- extract[[1]][["sel_at_age"]][, seq_len(nsex), seq_along(ages), , drop = FALSE] - df_sel <- expand.grid( - fleet = dimnames(sel)[[1]], - sex = sex_names, - age = ages, - year = as.numeric(dimnames(sel)[[4]]), - stringsAsFactors = FALSE - ) |> - dplyr::mutate( - estimate = as.vector(sel), - label = "sel_at_age" - ) - df_sel[setdiff(tolower(names(out_new)), tolower(names(df_sel)))] <- NA - quantities_list[["sel_at_age"]] <- df_sel - } - - if ("M_at_age" %in% names(extract[[1]])) { - m_at_age <- extract[[1]][["M_at_age"]][1, seq_len(nsex), seq_along(ages), , drop = FALSE] - df_m <- expand.grid( - sex = sex_names, - age = ages, - year = as.numeric(dimnames(m_at_age)[[4]]), - stringsAsFactors = FALSE - ) |> - dplyr::mutate( - estimate = as.vector(m_at_age), - label = "m_at_age" - ) - df_m[setdiff(tolower(names(out_new)), tolower(names(df_m)))] <- NA - quantities_list[["m_at_age"]] <- df_m - } - - if (length(quantities_list) > 0) { - out_list[[names(extract)]] <- Reduce(rbind, quantities_list) |> - dplyr::mutate( - module_name = names(extract), - age = as.character(age) - ) - } - } else if (is.list(extract[[1]])) { # indicates vector and list - ##### remaining lmnts #### - if (any(vapply(extract[[1]], is.matrix, FUN.VALUE = logical(1)))) { - ############################################################## - df <- extract[[1]] |> - expand_element(fleet_names = fleet_names) |> - dplyr::mutate( - module_name = module_name - ) |> - suppressWarnings() - df[setdiff(tolower(names(out_new)), tolower(names(df)))] <- NA - out_list[[names(extract)]] <- df - } else if (any(vapply(extract[[1]], is.vector, FUN.VALUE = logical(1)))) { # all must be a vector to work - so there must be conditions for dfs with a mix - extract_list <- list() - # mod_name1 <- names(extract) - for (i in seq_along(extract[[1]])) { - # need to add condition or something in expand_element to account for data thats formatted differently but is still a list i.e. p=9 - if (is.list(extract[[1]][i][[1]])) { - # mod_name2 <- glue::glue("{module_name}_{names(extract[[1]][i])}") - # comment out message once finished development - cli::cli_alert_info("Processing {names(extract[[1]][i])}") - - df <- extract[[1]][i][[1]] |> - expand_element(fleet_names = fleet_names) |> - dplyr::mutate( - module_name = module_name # mod_name2 - ) # |> - # suppressWarnings() - } else { - df <- data.frame( - estimate = extract[[1]][[i]][[1]], - label = names(extract[[1]][i]), - module_name = module_name - ) - } - df[setdiff(tolower(names(out_new)), tolower(names(df)))] <- NA - # remove quantities inserted from other steps - df <- df |> - dplyr::filter( - label %notin% c("index_hat", "catch_h") - ) - extract_list[[names(extract[[1]][i])]] <- df - } - new_df <- Reduce(rbind, extract_list) - out_list[[names(extract)]] <- new_df - } else { - cli::cli_alert_warning("Not compatible.") - } - } else { - cli::cli_alert_warning("Not compatible yet.") - } - # } else if (is.list(extract[[1]])) { # list only - # } else if (is.matrix(extract[[1]])) { # matrix only - # } else { - # cli::cli_alert_warning(paste(names(extract), " not compatible.", sep = "")) - # } # close if statement - } # close loop over objects listed in dat file - # Finish out df - # rbind() as above, so a module that has drifted from the standard column - # set aborts here rather than widening the output. - out_new <- Reduce(rbind, out_list) |> - # Add era as factor into BAM conout - dplyr::mutate( - # TODO: replace all periods with underscore if naming convention is different - label = tolower(label), - # set era - era = dplyr::if_else( - year > dat$data_list$endyr, - "fore", - "time" - ) - ) + out_new <- conout_rceattle(file = file, out_new = out_new, fleet_names = fleet_names) } else { cli::cli_abort(c( message = "Output file not compatible.", From 15976dd2acf557815479a1e5b929e79db09808e2 Mon Sep 17 00:00:00 2001 From: Sam Schiano <125507018+Schiano-NOAA@users.noreply.github.com> Date: Wed, 21 Oct 2026 14:08:31 -0400 Subject: [PATCH 2/9] read in RDS file for file and id if specified model --- R/convert_output.R | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/R/convert_output.R b/R/convert_output.R index f0745beb..870716c7 100644 --- a/R/convert_output.R +++ b/R/convert_output.R @@ -138,6 +138,9 @@ convert_output <- function( } # Recognize model through file extension + if (is.character(file) && tolower(stringr::str_extract(file, "\\.([^.]+)$")) == ".rds") { + file <- readRDS(file) + } if (is.character(file)) { if (is.null(model)) { model <- switch(stringr::str_extract(file, "\\.([^.]+)$"), @@ -149,14 +152,14 @@ convert_output <- function( cli::cli_alert_info("Processing BAM output file...") "bam" }, - ".rds" = { - cli::cli_alert_info("Processing WHAM output file...") - "wham" - }, - ".RDS" = { - cli::cli_alert_info("Processing FIMS output file...") - "fims" - }, + # ".rds" = { + # cli::cli_alert_info("Processing WHAM output file...") + # "wham" + # }, + # ".RDS" = { + # cli::cli_alert_info("Processing FIMS output file...") + # "fims" + # }, cli::cli_abort("Unknown file type. Please indicate model.") ) } From 1bd385c5d1660bfd20126d6c9c8beef5d8f09248 Mon Sep 17 00:00:00 2001 From: Sam Schiano <125507018+Schiano-NOAA@users.noreply.github.com> Date: Wed, 21 Oct 2026 14:14:11 -0400 Subject: [PATCH 3/9] add identifier for WHAM vs r4ss list object --- R/convert_output.R | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/R/convert_output.R b/R/convert_output.R index 870716c7..c7196b1c 100644 --- a/R/convert_output.R +++ b/R/convert_output.R @@ -174,8 +174,13 @@ convert_output <- function( "rceattle" }, "list" = { - cli::cli_alert_info("Processing SS3 r4ss output file...") - "ss3" + if (any(grepl("wham_version", names(file)))) { + cli::cli_alert_info("Processing WHAM output file...") + "wham" + } else { + cli::cli_alert_info("Processing SS3 r4ss output file...") + "ss3" + } }, cli::cli_abort("Unknown file type. Please indicate model.") ) From 0e95e3650f4f112bb79220e6411b2012bd4e8506 Mon Sep 17 00:00:00 2001 From: Sam Schiano <125507018+Schiano-NOAA@users.noreply.github.com> Date: Wed, 21 Oct 2026 14:25:06 -0400 Subject: [PATCH 4/9] update BAM script to compress example data and change name of ex data to match conventions of others --- R/conout_bam.R | 4 ++-- data-raw/DATASET_BAM.R | 3 ++- data/VermilionSnapper.rda | Bin 138541 -> 0 bytes data/vermilion_snapper.rda | Bin 0 -> 112084 bytes 4 files changed, 4 insertions(+), 3 deletions(-) delete mode 100644 data/VermilionSnapper.rda create mode 100644 data/vermilion_snapper.rda diff --git a/R/conout_bam.R b/R/conout_bam.R index a8588c09..247c5dbe 100644 --- a/R/conout_bam.R +++ b/R/conout_bam.R @@ -505,7 +505,7 @@ conout_bam <- function( # TODO: replace all periods with underscore if naming convention is different label = tolower(label) ) - if (model == "bam") { + # if (model == "bam") { out_new <- dplyr::mutate( out_new, era = dplyr::case_when( @@ -515,6 +515,6 @@ conout_bam <- function( TRUE ~ NA ) ) - } + # } return(out_new) } diff --git a/data-raw/DATASET_BAM.R b/data-raw/DATASET_BAM.R index 82f5f792..9c1971c4 100644 --- a/data-raw/DATASET_BAM.R +++ b/data-raw/DATASET_BAM.R @@ -7,4 +7,5 @@ pak::local_install(".") VermilionSnapper <- stockplotr::convert_output(EX_REPORT_PATH) VermilionSnapper <- subset(VermilionSnapper, year > 1980) # Save object as rda into raw_data -usethis::use_data(VermilionSnapper, overwrite = TRUE) +# usethis::use_data(VermilionSnapper, overwrite = TRUE) +save(VermilionSnapper, file = "data/vermilion_snapper.rda", compress = "xz", compression_level = 9) diff --git a/data/VermilionSnapper.rda b/data/VermilionSnapper.rda deleted file mode 100644 index 2b3bb6f436e93df54fa4b55d1c8687e7a1c023a3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 138541 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%0A$1t$0aN~0rW1NJQXwVcX=f6D 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

-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%0D9UFYFikS`EvmCu4d%DvoyEsx8WA>7 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 NOrprCo8r?@{{=~*wZi}a diff --git a/data/vermilion_snapper.rda b/data/vermilion_snapper.rda new file mode 100644 index 0000000000000000000000000000000000000000..318a1a048077010a5001298b84e1a0d29a19bd0f GIT binary patch literal 112084 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 literal 0 HcmV?d00001 From c9f504197b488af604d5707675c8fa822ae0c2f5 Mon Sep 17 00:00:00 2001 From: Sam Schiano <125507018+Schiano-NOAA@users.noreply.github.com> Date: Wed, 21 Oct 2026 14:29:41 -0400 Subject: [PATCH 5/9] fix issue with data call and update rceattle data to compressed version --- data-raw/DATASET_RCEATTLE.R | 5 +++-- data/pollock.rda | Bin 40707 -> 34908 bytes 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/data-raw/DATASET_RCEATTLE.R b/data-raw/DATASET_RCEATTLE.R index bbc646ae..e3937647 100644 --- a/data-raw/DATASET_RCEATTLE.R +++ b/data-raw/DATASET_RCEATTLE.R @@ -4,7 +4,7 @@ install.packages(c("remotes")) # , "readxl" remotes::install_github("afsc-assessments/Rceattle") # library(Rceattle) # library(readxl) -Rceattle::data("GOApollock") +data("GOApollock") GOApollock$styr = 1977 # The SAFE model starts at 1970, so change styr to 1970 to run the full time series model (data is in there). I start them all at 1977 because thats the years with overlap. pollock_model <- Rceattle::fit_mod( data_list = GOApollock, @@ -21,4 +21,5 @@ pak::local_install(".") # OK not to subset bc small pollock <- stockplotr::convert_output(pollock_model) # Save object as rda into raw_data -usethis::use_data(pollock, overwrite = TRUE) +# usethis::use_data(pollock, overwrite = TRUE) +save(pollock, file = "data/pollock.rda", compress = "xz", compression_level = 9) diff --git a/data/pollock.rda b/data/pollock.rda index fb9b449f6ddfcd06c4f41f1dc7c37c0a55477b75..aca4bc4b44e9bd9f917294710112f2e6bebf73f4 100644 GIT binary patch literal 34908 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 PSNvVc6yZWa5T+a~kjpfE From 6c2a2db1629ee518e98c5abb92f5064d2cc51169 Mon Sep 17 00:00:00 2001 From: Sam Schiano <125507018+Schiano-NOAA@users.noreply.github.com> Date: Wed, 21 Oct 2026 14:55:20 -0400 Subject: [PATCH 6/9] add documentation to conout break down --- R/conout_bam.R | 7 +++++++ R/conout_rceattle.R | 7 +++++++ R/conout_ss3.R | 8 ++++++++ 3 files changed, 22 insertions(+) diff --git a/R/conout_bam.R b/R/conout_bam.R index 247c5dbe..414beb88 100644 --- a/R/conout_bam.R +++ b/R/conout_bam.R @@ -1,3 +1,10 @@ +#' Code to convert BAM output to standard framework. +#' +#' Does not change naming conventions. +#' +#' @inheritParams convert_output +#' +#' @returns Reshaped data frame. conout_bam <- function( file, out_new, diff --git a/R/conout_rceattle.R b/R/conout_rceattle.R index 686a59a0..515824c2 100644 --- a/R/conout_rceattle.R +++ b/R/conout_rceattle.R @@ -1,3 +1,10 @@ +#' Code to convert Rceattle output to standard framework. +#' +#' Does not change naming conventions. +#' +#' @inheritParams convert_output +#' +#' @returns Reshaped data frame. conout_rceattle <- function( file, out_new, diff --git a/R/conout_ss3.R b/R/conout_ss3.R index 3d8eb083..bd8301b8 100644 --- a/R/conout_ss3.R +++ b/R/conout_ss3.R @@ -1,3 +1,11 @@ +#' Code to convert SS3 output to standard framework. +#' +#' Does not change naming conventions. Contains code to work with SS3 Report.sso +#' file or returned object from `r4ss::ss_output()`. +#' +#' @inheritParams convert_output +#' +#' @returns Reshaped data frame. conout_ss3 <- function( file, out_new, From c49a112c1b7bcedb842244d2953fae64eba690e4 Mon Sep 17 00:00:00 2001 From: Sam Schiano <125507018+Schiano-NOAA@users.noreply.github.com> Date: Wed, 21 Oct 2026 15:47:05 -0400 Subject: [PATCH 7/9] add documentation for new example data sets --- R/data.R | 177 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 176 insertions(+), 1 deletion(-) diff --git a/R/data.R b/R/data.R index aa90d1e6..d9db6617 100644 --- a/R/data.R +++ b/R/data.R @@ -3,7 +3,7 @@ #' Included data set that represents a Report.sso file converted using #' convert_output(). This example is from the 2022 Petrale sole stock assessment. #' -#' @format A tibble with 591109 rows and 33 variables: +#' @format A tibble (\code{tbl_df}, \code{tbl}, \code{data.frame}) with 591109 rows and 33 variables: #' \describe{ #' \item{label}{Standard name for estimate or value name} #' \item{estimate}{Actual value of the label} @@ -41,3 +41,178 @@ #' } #' "example_data" + +#' 2018 Gulf of Alaska Pollock stock assessment output +#' +#' Standardized output of the 2018 Gulf of Alaska Pollock stock assessment +#' produced from Rceattle including all of the values needed to create +#' plots and tables in {stockplotr}. The example can be found and run from the +#' Rceattle repository. +#' +#' @docType data +#' +#' @usage data(pollock) +#' +#' @format A tibble (\code{tbl_df}, \code{tbl}, \code{data.frame}) with 9,983 rows and 35 variables: +#' \describe{ +#' \item{label}{Standard name for estimate or value name} +#' \item{estimate}{Actual value of the label} +#' \item{year}{Annual indexing value} +#' \item{fleet}{Names of fleets or surveys indexed by the data} +#' \item{sex}{Native reference to male, female, unknown, or none} +#' \item{area}{Specified areas by the model} +#' \item{growth_pattern}{Indexing column of data} +#' \item{uncertainty}{Value of uncertainty associated with the label column} +#' \item{uncertainty_label}{Uncertainty label or name associated with the label columns} +#' \item{module_name}{Name of keyword (SS3) or list indexing in the original model output for tracking purposes} +#' \item{time}{Time sometimes referenced in decimals to the year and month} +#' \item{era}{"time" for current time series in model; "fore" representing the projected or forecasted years of the model} +#' \item{month}{Month factor} +#' \item{season}{Season usually associated with year} +#' \item{subseason}{Subseason when used} +#' \item{birthseas}{Birthseason found in SS3} +#' \item{initial}{Initial input value in the model when available associated with the label column} +#' \item{likelihood}{Likelihood value for the data point} +#' \item{platoon}{Platoon also an SS3 indexing value} +#' \item{age}{Age of fish} +#' \item{bio_pattern}{Indexing column of data} +#' \item{settlement}{Indexing column of data} +#' \item{morph}{Indexing column of data} +#' \item{type}{Indexing column of data} +#' \item{factor}{Indexing column of data} +#' \item{part}{Indexing column of data} +#' \item{kind}{Indexing column of data} +#' \item{nsim}{Indexing column of data} +#' \item{bin}{Indexing column of data} +#' \item{age_a}{Alternative age column} +#' \item{length_bins}{Length bins for composition or other length based data} +#' \item{count}{Indexing column of data} +#' \item{block}{Indexing column of data} +#' } +#' +#' @keywords datasets +#' +#' @references Adams, G. D., Holsman, K. K., Barbeaux, S. J., Dorn, M. W., Ianelli, J. N., Spies, I., … Punt, A. E. (2022) +#' (\href{https://doi.org/10.1016/j.fishres.2022.106303) +#' +#' @source \href{https://github.com/afsc-assessments/Rceattle/blob/main/examples/Fit_2018_GOA_single-species_models.R}{Rceattle Example} +#' +#' @examples +#' data(pollock) +#' head(pollock) +#' unique(pollock$label) +"pollock" + +#' SEDAR 55 South Atlantic Vermilion Snapper +#' +#' Standardized output of the 2018 South Atlantic Vermilion Snapper stock assessment +#' produced from the Beaufort Assessment Model (BAM). +#' +#' @docType data +#' +#' @usage data(vermilion_snapper) +#' +#' @format A tibble (\code{tbl_df}, \code{tbl}, \code{data.frame}) with 35,881 rows and 35 variables: +#' \describe{ +#' \item{label}{Standard name for estimate or value name} +#' \item{estimate}{Actual value of the label} +#' \item{year}{Annual indexing value} +#' \item{fleet}{Names of fleets or surveys indexed by the data} +#' \item{sex}{Native reference to male, female, unknown, or none} +#' \item{area}{Specified areas by the model} +#' \item{growth_pattern}{Indexing column of data} +#' \item{uncertainty}{Value of uncertainty associated with the label column} +#' \item{uncertainty_label}{Uncertainty label or name associated with the label columns} +#' \item{module_name}{Name of keyword (SS3) or list indexing in the original model output for tracking purposes} +#' \item{time}{Time sometimes referenced in decimals to the year and month} +#' \item{era}{"time" for current time series in model; "fore" representing the projected or forecasted years of the model} +#' \item{month}{Month factor} +#' \item{season}{Season usually associated with year} +#' \item{subseason}{Subseason when used} +#' \item{birthseas}{Birthseason found in SS3} +#' \item{initial}{Initial input value in the model when available associated with the label column} +#' \item{likelihood}{Likelihood value for the data point} +#' \item{platoon}{Platoon also an SS3 indexing value} +#' \item{age}{Age of fish} +#' \item{bio_pattern}{Indexing column of data} +#' \item{settlement}{Indexing column of data} +#' \item{morph}{Indexing column of data} +#' \item{type}{Indexing column of data} +#' \item{factor}{Indexing column of data} +#' \item{part}{Indexing column of data} +#' \item{kind}{Indexing column of data} +#' \item{nsim}{Indexing column of data} +#' \item{bin}{Indexing column of data} +#' \item{age_a}{Alternative age column} +#' \item{length_bins}{Length bins for composition or other length based data} +#' \item{count}{Indexing column of data} +#' \item{block}{Indexing column of data} +#' } +#' +#' @keywords datasets +#' +#' @references SEDAR (2018) +#' (\href{https://sedarweb.org/documents/sedar-55-stock-assessment-report-south-atlantic-vermilion-snapper/) +#' +#' @examples +#' data(vermilion_snapper) +#' head(vermilion_snapper) +#' unique(vermilion_snapper$label) +vermilion_snapper + +#' SS3 Simple stock assessment output +#' +#' Standardized output of a generic simple example of SS3 found from the `r4ss` +#' repository examples. The raw output is converted to an R readable object +#' using `r4ss::ss_output` then standardized using `stockplotr::convert_output()`. +#' +#' @docType data +#' +#' @usage data(ss3_simple) +#' +#' @format A tibble (\code{tbl_df}, \code{tbl}, \code{data.frame}) with 38,195 rows and 35 variables: +#' \describe{ +#' \item{label}{Standard name for estimate or value name} +#' \item{estimate}{Actual value of the label} +#' \item{year}{Annual indexing value} +#' \item{fleet}{Names of fleets or surveys indexed by the data} +#' \item{sex}{Native reference to male, female, unknown, or none} +#' \item{area}{Specified areas by the model} +#' \item{growth_pattern}{Indexing column of data} +#' \item{uncertainty}{Value of uncertainty associated with the label column} +#' \item{uncertainty_label}{Uncertainty label or name associated with the label columns} +#' \item{module_name}{Name of keyword (SS3) or list indexing in the original model output for tracking purposes} +#' \item{time}{Time sometimes referenced in decimals to the year and month} +#' \item{era}{"time" for current time series in model; "fore" representing the projected or forecasted years of the model} +#' \item{month}{Month factor} +#' \item{season}{Season usually associated with year} +#' \item{subseason}{Subseason when used} +#' \item{birthseas}{Birthseason found in SS3} +#' \item{initial}{Initial input value in the model when available associated with the label column} +#' \item{likelihood}{Likelihood value for the data point} +#' \item{platoon}{Platoon also an SS3 indexing value} +#' \item{age}{Age of fish} +#' \item{bio_pattern}{Indexing column of data} +#' \item{settlement}{Indexing column of data} +#' \item{morph}{Indexing column of data} +#' \item{type}{Indexing column of data} +#' \item{factor}{Indexing column of data} +#' \item{part}{Indexing column of data} +#' \item{kind}{Indexing column of data} +#' \item{nsim}{Indexing column of data} +#' \item{bin}{Indexing column of data} +#' \item{age_a}{Alternative age column} +#' \item{length_bins}{Length bins for composition or other length based data} +#' \item{count}{Indexing column of data} +#' \item{block}{Indexing column of data} +#' } +#' +#' @keywords datasets +#' +#' @source \href{https://github.com/r4ss/r4ss/}{r4ss Repository} +#' +#' @examples +#' data(ss3_simple) +#' head(ss3_simple) +#' unique(ss3_simple$label) +"ss3_simple" \ No newline at end of file From 2e425dd1de606c67a1e911bacf37169ca877a387 Mon Sep 17 00:00:00 2001 From: Sam Schiano <125507018+Schiano-NOAA@users.noreply.github.com> Date: Wed, 21 Oct 2026 15:57:17 -0400 Subject: [PATCH 8/9] update documentation --- R/data.R | 6 ++-- data-raw/DATASET_BAM.R | 11 +++--- data-raw/DATASET_RCEATTLE.R | 5 +-- data/vermilion_snapper.rda | Bin 112084 -> 112180 bytes man/conout_bam.Rd | 25 ++++++++++++++ man/conout_rceattle.Rd | 25 ++++++++++++++ man/conout_ss3.Rd | 26 ++++++++++++++ man/example_data.Rd | 2 +- man/pollock.Rd | 66 ++++++++++++++++++++++++++++++++++++ man/ss3_simple.Rd | 61 +++++++++++++++++++++++++++++++++ man/vermilion_snapper.Rd | 61 +++++++++++++++++++++++++++++++++ 11 files changed, 277 insertions(+), 11 deletions(-) create mode 100644 man/conout_bam.Rd create mode 100644 man/conout_rceattle.Rd create mode 100644 man/conout_ss3.Rd create mode 100644 man/pollock.Rd create mode 100644 man/ss3_simple.Rd create mode 100644 man/vermilion_snapper.Rd diff --git a/R/data.R b/R/data.R index d9db6617..116a3b5a 100644 --- a/R/data.R +++ b/R/data.R @@ -93,7 +93,7 @@ #' @keywords datasets #' #' @references Adams, G. D., Holsman, K. K., Barbeaux, S. J., Dorn, M. W., Ianelli, J. N., Spies, I., … Punt, A. E. (2022) -#' (\href{https://doi.org/10.1016/j.fishres.2022.106303) +#' (\href{https://doi.org/10.1016/j.fishres.2022.106303}) #' #' @source \href{https://github.com/afsc-assessments/Rceattle/blob/main/examples/Fit_2018_GOA_single-species_models.R}{Rceattle Example} #' @@ -152,13 +152,13 @@ #' @keywords datasets #' #' @references SEDAR (2018) -#' (\href{https://sedarweb.org/documents/sedar-55-stock-assessment-report-south-atlantic-vermilion-snapper/) +#' (\href{https://sedarweb.org/documents/sedar-55-stock-assessment-report-south-atlantic-vermilion-snapper/}) #' #' @examples #' data(vermilion_snapper) #' head(vermilion_snapper) #' unique(vermilion_snapper$label) -vermilion_snapper +"vermilion_snapper" #' SS3 Simple stock assessment output #' diff --git a/data-raw/DATASET_BAM.R b/data-raw/DATASET_BAM.R index 9c1971c4..9d67e450 100644 --- a/data-raw/DATASET_BAM.R +++ b/data-raw/DATASET_BAM.R @@ -1,11 +1,12 @@ -## code to prepare `VermilionSnapper` dataset goes here +## code to prepare `vermilion_snapper` dataset goes here # Path to SS3 output file EX_REPORT_PATH <- file.path("inst", "extdata", "VermilionSnapper.rdat") # Install stockplotr pak::local_install(".") # Convert output -VermilionSnapper <- stockplotr::convert_output(EX_REPORT_PATH) -VermilionSnapper <- subset(VermilionSnapper, year > 1980) +vermilion_snapper <- stockplotr::convert_output(EX_REPORT_PATH) +vermilion_snapper <- subset(vermilion_snapper, year > 1980) # Save object as rda into raw_data -# usethis::use_data(VermilionSnapper, overwrite = TRUE) -save(VermilionSnapper, file = "data/vermilion_snapper.rda", compress = "xz", compression_level = 9) +usethis::use_data(vermilion_snapper, overwrite = TRUE) +# Overwrite as compressed data +save(vermilion_snapper, file = "data/vermilion_snapper.rda", compress = "xz", compression_level = 9) diff --git a/data-raw/DATASET_RCEATTLE.R b/data-raw/DATASET_RCEATTLE.R index e3937647..12174e0b 100644 --- a/data-raw/DATASET_RCEATTLE.R +++ b/data-raw/DATASET_RCEATTLE.R @@ -20,6 +20,7 @@ pak::local_install(".") # Convert output # OK not to subset bc small pollock <- stockplotr::convert_output(pollock_model) -# Save object as rda into raw_data -# usethis::use_data(pollock, overwrite = TRUE) +# Save object as rda into raw_data -- and document +usethis::use_data(pollock, overwrite = TRUE) +# Overwrite compressed version save(pollock, file = "data/pollock.rda", compress = "xz", compression_level = 9) diff --git a/data/vermilion_snapper.rda b/data/vermilion_snapper.rda index 318a1a048077010a5001298b84e1a0d29a19bd0f..28a0082f4285ba112155d0cf2494454545f8b941 100644 GIT binary patch literal 112180 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

vL_zliqig{T$3}R0791WLjQRz|PKp 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 literal 112084 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 diff --git a/man/conout_bam.Rd b/man/conout_bam.Rd new file mode 100644 index 00000000..a88159c1 --- /dev/null +++ b/man/conout_bam.Rd @@ -0,0 +1,25 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/conout_bam.R +\name{conout_bam} +\alias{conout_bam} +\title{Code to convert BAM output to standard framework.} +\usage{ +conout_bam(file, out_new, fleet_names = NULL) +} +\arguments{ +\item{file}{Path. Assessment model output file path. Currently accepts SS3 +Report.sso file, BAM .rda file, Rceattle model object, and FIMS model object.} + +\item{fleet_names}{Character vector. Names of fleets in the assessment model as + shortened in the output file or names of fleets to replace the native fleet + names in the output. For example, if fleet names in the model are 1, 2, 3 + then fleet_names = c("fleet1" = 1, "fleet2" = 2, "fleet3" = 3). + + Default: NULL} +} +\value{ +Reshaped data frame. +} +\description{ +Does not change naming conventions. +} diff --git a/man/conout_rceattle.Rd b/man/conout_rceattle.Rd new file mode 100644 index 00000000..3c1ef0c1 --- /dev/null +++ b/man/conout_rceattle.Rd @@ -0,0 +1,25 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/conout_rceattle.R +\name{conout_rceattle} +\alias{conout_rceattle} +\title{Code to convert Rceattle output to standard framework.} +\usage{ +conout_rceattle(file, out_new, fleet_names = NULL) +} +\arguments{ +\item{file}{Path. Assessment model output file path. Currently accepts SS3 +Report.sso file, BAM .rda file, Rceattle model object, and FIMS model object.} + +\item{fleet_names}{Character vector. Names of fleets in the assessment model as + shortened in the output file or names of fleets to replace the native fleet + names in the output. For example, if fleet names in the model are 1, 2, 3 + then fleet_names = c("fleet1" = 1, "fleet2" = 2, "fleet3" = 3). + + Default: NULL} +} +\value{ +Reshaped data frame. +} +\description{ +Does not change naming conventions. +} diff --git a/man/conout_ss3.Rd b/man/conout_ss3.Rd new file mode 100644 index 00000000..137e848f --- /dev/null +++ b/man/conout_ss3.Rd @@ -0,0 +1,26 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/conout_ss3.R +\name{conout_ss3} +\alias{conout_ss3} +\title{Code to convert SS3 output to standard framework.} +\usage{ +conout_ss3(file, out_new, fleet_names = NULL) +} +\arguments{ +\item{file}{Path. Assessment model output file path. Currently accepts SS3 +Report.sso file, BAM .rda file, Rceattle model object, and FIMS model object.} + +\item{fleet_names}{Character vector. Names of fleets in the assessment model as + shortened in the output file or names of fleets to replace the native fleet + names in the output. For example, if fleet names in the model are 1, 2, 3 + then fleet_names = c("fleet1" = 1, "fleet2" = 2, "fleet3" = 3). + + Default: NULL} +} +\value{ +Reshaped data frame. +} +\description{ +Does not change naming conventions. Contains code to work with SS3 Report.sso +file or returned object from `r4ss::ss_output()`. +} diff --git a/man/example_data.Rd b/man/example_data.Rd index a2eb7a9d..b806d90c 100644 --- a/man/example_data.Rd +++ b/man/example_data.Rd @@ -5,7 +5,7 @@ \alias{example_data} \title{SS3 Example data} \format{ -A tibble with 591109 rows and 33 variables: +A tibble (\code{tbl_df}, \code{tbl}, \code{data.frame}) with 591109 rows and 33 variables: \describe{ \item{label}{Standard name for estimate or value name} \item{estimate}{Actual value of the label} diff --git a/man/pollock.Rd b/man/pollock.Rd new file mode 100644 index 00000000..f019988f --- /dev/null +++ b/man/pollock.Rd @@ -0,0 +1,66 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/data.R +\docType{data} +\name{pollock} +\alias{pollock} +\title{2018 Gulf of Alaska Pollock stock assessment output} +\format{ +A tibble (\code{tbl_df}, \code{tbl}, \code{data.frame}) with 9,983 rows and 35 variables: +\describe{ + \item{label}{Standard name for estimate or value name} + \item{estimate}{Actual value of the label} + \item{year}{Annual indexing value} + \item{fleet}{Names of fleets or surveys indexed by the data} + \item{sex}{Native reference to male, female, unknown, or none} + \item{area}{Specified areas by the model} + \item{growth_pattern}{Indexing column of data} + \item{uncertainty}{Value of uncertainty associated with the label column} + \item{uncertainty_label}{Uncertainty label or name associated with the label columns} + \item{module_name}{Name of keyword (SS3) or list indexing in the original model output for tracking purposes} + \item{time}{Time sometimes referenced in decimals to the year and month} + \item{era}{"time" for current time series in model; "fore" representing the projected or forecasted years of the model} + \item{month}{Month factor} + \item{season}{Season usually associated with year} + \item{subseason}{Subseason when used} + \item{birthseas}{Birthseason found in SS3} + \item{initial}{Initial input value in the model when available associated with the label column} + \item{likelihood}{Likelihood value for the data point} + \item{platoon}{Platoon also an SS3 indexing value} + \item{age}{Age of fish} + \item{bio_pattern}{Indexing column of data} + \item{settlement}{Indexing column of data} + \item{morph}{Indexing column of data} + \item{type}{Indexing column of data} + \item{factor}{Indexing column of data} + \item{part}{Indexing column of data} + \item{kind}{Indexing column of data} + \item{nsim}{Indexing column of data} + \item{bin}{Indexing column of data} + \item{age_a}{Alternative age column} + \item{length_bins}{Length bins for composition or other length based data} + \item{count}{Indexing column of data} + \item{block}{Indexing column of data} +} +} +\source{ +\href{https://github.com/afsc-assessments/Rceattle/blob/main/examples/Fit_2018_GOA_single-species_models.R}{Rceattle Example} +} +\usage{ +data(pollock) +} +\description{ +Standardized output of the 2018 Gulf of Alaska Pollock stock assessment +produced from Rceattle including all of the values needed to create +plots and tables in {stockplotr}. The example can be found and run from the +Rceattle repository. +} +\examples{ +data(pollock) +head(pollock) +unique(pollock$label) +} +\references{ +Adams, G. D., Holsman, K. K., Barbeaux, S. J., Dorn, M. W., Ianelli, J. N., Spies, I., … Punt, A. E. (2022) +(\href{https://doi.org/10.1016/j.fishres.2022.106303}) +} +\keyword{datasets} diff --git a/man/ss3_simple.Rd b/man/ss3_simple.Rd new file mode 100644 index 00000000..aedf1756 --- /dev/null +++ b/man/ss3_simple.Rd @@ -0,0 +1,61 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/data.R +\docType{data} +\name{ss3_simple} +\alias{ss3_simple} +\title{SS3 Simple stock assessment output} +\format{ +A tibble (\code{tbl_df}, \code{tbl}, \code{data.frame}) with 38,195 rows and 35 variables: +\describe{ + \item{label}{Standard name for estimate or value name} + \item{estimate}{Actual value of the label} + \item{year}{Annual indexing value} + \item{fleet}{Names of fleets or surveys indexed by the data} + \item{sex}{Native reference to male, female, unknown, or none} + \item{area}{Specified areas by the model} + \item{growth_pattern}{Indexing column of data} + \item{uncertainty}{Value of uncertainty associated with the label column} + \item{uncertainty_label}{Uncertainty label or name associated with the label columns} + \item{module_name}{Name of keyword (SS3) or list indexing in the original model output for tracking purposes} + \item{time}{Time sometimes referenced in decimals to the year and month} + \item{era}{"time" for current time series in model; "fore" representing the projected or forecasted years of the model} + \item{month}{Month factor} + \item{season}{Season usually associated with year} + \item{subseason}{Subseason when used} + \item{birthseas}{Birthseason found in SS3} + \item{initial}{Initial input value in the model when available associated with the label column} + \item{likelihood}{Likelihood value for the data point} + \item{platoon}{Platoon also an SS3 indexing value} + \item{age}{Age of fish} + \item{bio_pattern}{Indexing column of data} + \item{settlement}{Indexing column of data} + \item{morph}{Indexing column of data} + \item{type}{Indexing column of data} + \item{factor}{Indexing column of data} + \item{part}{Indexing column of data} + \item{kind}{Indexing column of data} + \item{nsim}{Indexing column of data} + \item{bin}{Indexing column of data} + \item{age_a}{Alternative age column} + \item{length_bins}{Length bins for composition or other length based data} + \item{count}{Indexing column of data} + \item{block}{Indexing column of data} +} +} +\source{ +\href{https://github.com/r4ss/r4ss/}{r4ss Repository} +} +\usage{ +data(ss3_simple) +} +\description{ +Standardized output of a generic simple example of SS3 found from the `r4ss` +repository examples. The raw output is converted to an R readable object +using `r4ss::ss_output` then standardized using `stockplotr::convert_output()`. +} +\examples{ +data(ss3_simple) +head(ss3_simple) +unique(ss3_simple$label) +} +\keyword{datasets} diff --git a/man/vermilion_snapper.Rd b/man/vermilion_snapper.Rd new file mode 100644 index 00000000..ede8ecb1 --- /dev/null +++ b/man/vermilion_snapper.Rd @@ -0,0 +1,61 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/data.R +\docType{data} +\name{vermilion_snapper} +\alias{vermilion_snapper} +\title{SEDAR 55 South Atlantic Vermilion Snapper} +\format{ +A tibble (\code{tbl_df}, \code{tbl}, \code{data.frame}) with 35,881 rows and 35 variables: +\describe{ + \item{label}{Standard name for estimate or value name} + \item{estimate}{Actual value of the label} + \item{year}{Annual indexing value} + \item{fleet}{Names of fleets or surveys indexed by the data} + \item{sex}{Native reference to male, female, unknown, or none} + \item{area}{Specified areas by the model} + \item{growth_pattern}{Indexing column of data} + \item{uncertainty}{Value of uncertainty associated with the label column} + \item{uncertainty_label}{Uncertainty label or name associated with the label columns} + \item{module_name}{Name of keyword (SS3) or list indexing in the original model output for tracking purposes} + \item{time}{Time sometimes referenced in decimals to the year and month} + \item{era}{"time" for current time series in model; "fore" representing the projected or forecasted years of the model} + \item{month}{Month factor} + \item{season}{Season usually associated with year} + \item{subseason}{Subseason when used} + \item{birthseas}{Birthseason found in SS3} + \item{initial}{Initial input value in the model when available associated with the label column} + \item{likelihood}{Likelihood value for the data point} + \item{platoon}{Platoon also an SS3 indexing value} + \item{age}{Age of fish} + \item{bio_pattern}{Indexing column of data} + \item{settlement}{Indexing column of data} + \item{morph}{Indexing column of data} + \item{type}{Indexing column of data} + \item{factor}{Indexing column of data} + \item{part}{Indexing column of data} + \item{kind}{Indexing column of data} + \item{nsim}{Indexing column of data} + \item{bin}{Indexing column of data} + \item{age_a}{Alternative age column} + \item{length_bins}{Length bins for composition or other length based data} + \item{count}{Indexing column of data} + \item{block}{Indexing column of data} +} +} +\usage{ +data(vermilion_snapper) +} +\description{ +Standardized output of the 2018 South Atlantic Vermilion Snapper stock assessment +produced from the Beaufort Assessment Model (BAM). +} +\examples{ +data(vermilion_snapper) +head(vermilion_snapper) +unique(vermilion_snapper$label) +} +\references{ +SEDAR (2018) +(\href{https://sedarweb.org/documents/sedar-55-stock-assessment-report-south-atlantic-vermilion-snapper/}) +} +\keyword{datasets} From b90a3bc2c1e5933f5ab3eb8ecec472a9f8dbf19f Mon Sep 17 00:00:00 2001 From: Sam Schiano <125507018+Schiano-NOAA@users.noreply.github.com> Date: Thu, 22 Oct 2026 10:08:28 -0400 Subject: [PATCH 9/9] remove addl spaces in code --- R/convert_output.R | 20 +------------------- 1 file changed, 1 insertion(+), 19 deletions(-) diff --git a/R/convert_output.R b/R/convert_output.R index c7196b1c..62bda5b8 100644 --- a/R/convert_output.R +++ b/R/convert_output.R @@ -186,7 +186,6 @@ convert_output <- function( ) } - #### SS3 #### # SS3 groupings: https://docs.google.com/spreadsheets/d/11-k0xOo3Bit1MbJf2ZjmymzsUNCRhgGkVfXV1jNEdbM/edit?gid=0#gid=0 # Convert SS3 output Report.sso file @@ -195,7 +194,6 @@ convert_output <- function( } else if (model %in% c("bam", "BAM")) { #### BAM #### out_new <- conout_bam(file = file, out_new = out_new, fleet_names = fleet_names) - #### WHAM ---- } else if (model == "wham") { # This is how Bai read the ASAP output @@ -265,24 +263,8 @@ convert_output <- function( ) ) |> suppressWarnings() - # if (tolower(model) == "ss3") { - # con_file <- system.file("resources", "ss3_var_names.csv", package = "stockplotr", mustWork = TRUE) - # var_names_sheet <- utils::read.csv(con_file, na.strings = "") - # } else if (tolower(model) == "bam") { - # con_file <- system.file("resources", "bam_var_names.csv", package = "stockplotr", mustWork = TRUE) - # var_names_sheet <- utils::read.csv(con_file, na.strings = "") |> - # dplyr::mutate( - # label = tolower(label) - # ) - # } else if (tolower(model) == "fims") { - # con_file <- system.file("resources", "fims_var_names.csv", package = "stockplotr", mustWork = TRUE) - # var_names_sheet <- utils::read.csv(con_file, na.strings = "") - # } else if (tolower(model) == "rceattle") { - # con_file <- system.file("resources", "rceattle_var_names.csv", package = "stockplotr", mustWork = TRUE) - # var_names_sheet <- utils::read.csv(con_file, na.strings = "") - # } - # edit: here is a different way of loading in the csv sheets + # Call in csv for model con_file <- system.file("resources", glue::glue("{tolower(model)}_var_names.csv"), package = "stockplotr", mustWork = TRUE) # temporarily add call to local csv so I can test # con_file <- glue::glue("~/GitHub/stockplotr/inst/resources/{model}_var_names.csv")