From e8ef0f0affd07749ff4e79ea87d98df326e92fee Mon Sep 17 00:00:00 2001 From: arnejh Date: Mon, 1 Sep 2025 21:14:59 +0200 Subject: [PATCH 1/2] Temporary removing Reca as suggests due to failure to compile on macOS and Windows, and added pre-generated help HTLM pages using the latest RstoxBuild. --- .github/workflows/check-full.yaml | 8 ++-- DESCRIPTION | 17 ++++----- NEWS.md | 5 +++ R/StoxAnalysisFunctions.R | 14 +++---- R/StoxBaselineFunctions.R | 12 +++--- R/StoxPlots.R | 52 +++++++++++++------------- R/StoxReportFunctions.R | 46 +++++++++++------------ inst/extdata/functionArguments.rds | Bin 16364 -> 104935 bytes man/AddPeriodStoxBiotic.Rd | 2 +- man/AddPeriodStoxLanding.Rd | 2 +- man/AddStratumStoxBiotic.Rd | 2 +- man/AddStratumStoxLanding.Rd | 2 +- man/ParameterizeRecaModels.Rd | 6 +-- man/PlotPosteriorTraces.Rd | 14 +++---- man/PlotSamplingCoverage.Rd | 20 +++++----- man/PlotSamplingOverviewCell.Rd | 18 ++++----- man/PrepareRecaEstimate.Rd | 4 +- man/ReportFdaLandings.Rd | 4 +- man/ReportFdaSOP.Rd | 4 +- man/ReportFdaSampling.Rd | 4 +- man/ReportParameterConvergence.Rd | 4 +- man/ReportRecaCatchAtAge.Rd | 4 +- man/ReportRecaCatchAtAgeCovariance.Rd | 2 +- man/ReportRecaCatchAtLength.Rd | 4 +- man/ReportRecaCatchStatistics.Rd | 20 +++++----- man/RunRecaModels.Rd | 4 +- man/SetShortGearBiotic.Rd | 2 +- vignettes/StoX-data-preparation.Rmd | 2 +- 28 files changed, 140 insertions(+), 138 deletions(-) diff --git a/.github/workflows/check-full.yaml b/.github/workflows/check-full.yaml index c243bd19..6754f99d 100644 --- a/.github/workflows/check-full.yaml +++ b/.github/workflows/check-full.yaml @@ -139,7 +139,7 @@ jobs: rm -f '/usr/local/bin/python3.11' rm -f '/usr/local/bin/python3-config' rm -f '/usr/local/bin/python3.11-config' - export HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=false # This prevents Homebrew from re-installing R, which will lead to .Platform$pkgType = "source". + export HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK= # This (the value should actually be empty...) prevents Homebrew from re-installing R, which will lead to .Platform$pkgType = "source". brew install gdal shell: bash @@ -255,7 +255,7 @@ jobs: #### 5. Deploy to the drat repos: #### ###################################### - ## 5a. Upload to the official (DRAT) repo, but only from the master branch: + ## 5a. Upload to the official (DRAT) repo, but only from the master branch, and only for pre-releases, which are those ending with -900x as identified in the script checktag-actions.sh and routed through this yaml to the script deploy-actions.sh (in the folder https://github.com/StoXProject/unstableRepo/blob/main/scripts/): - name: Upload to the official (DRAT) repo if: ( (runner.os == 'Windows') || (runner.os == 'macOS') || (runner.os == 'Linux' && matrix.config.r == 'release') ) && github.event_name == 'push' && github.ref_name == 'master' env: @@ -265,7 +265,7 @@ jobs: shell: bash - ## 5b. Upload to the (DRAT) testingRepo, but only from the testing branch: + ## 5b. Upload to the (DRAT) testingRepo, but only from the testing branch, and only for pre-releases, which are those ending with -900x as identified in the script checktag-actions.sh and routed through this yaml to the script deploy-actions.sh (in the folder https://github.com/StoXProject/unstableRepo/blob/main/scripts/): - name: Upload to the testing (DRAT) repo if: ( (runner.os == 'Windows') || (runner.os == 'macOS') || (runner.os == 'Linux' && matrix.config.r == 'release') ) && github.event_name == 'push' && github.ref_name == 'testing' env: @@ -275,7 +275,7 @@ jobs: shell: bash - ## 5c. Upload to the (DRAT) unstableRepo, but only from the develop branch: + ## 5c. Upload to the (DRAT) unstableRepo, but only from the develop branch, and only for pre-releases, which are those ending with -900x as identified in the script checktag-actions.sh and routed through this yaml to the script deploy-actions.sh (in the folder https://github.com/StoXProject/unstableRepo/blob/main/scripts/): - name: Upload to the unstable (DRAT) repo if: ( (runner.os == 'Windows') || (runner.os == 'macOS') || (runner.os == 'Linux' && matrix.config.r == 'release') ) && github.event_name == 'push' && github.ref_name == 'develop' env: diff --git a/DESCRIPTION b/DESCRIPTION index 6b84b394..32b106a3 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,6 +1,6 @@ Package: RstoxFDA -Version: 1.6.0 -Date: 2025-03-18 +Version: 1.7.0-9001 +Date: 2025-09-01 Title: Fisheries Dependent Analysis with RstoX Authors@R: c( person(given = "Edvin", @@ -10,7 +10,7 @@ Authors@R: c( person(given = "Arne Johannes", family = "Holmin", role = "aut")) -Depends: R (>= 4.3) +Depends: R (>= 4.4) Description: Fisheries dependent analysis, including running the Estimated Catch at Age model through the Reca package developed by the Norwegian Computing Center. URL: https://github.com/StoXProject/RstoxFDA @@ -18,6 +18,7 @@ BugReports: https://github.com/StoXProject/RstoxFDA/issues License: LGPL-3 LazyData: true Encoding: UTF-8 +VignetteBuilder: knitr Imports: data.table (>= 1.12.6), ggplot2 (>= 3.2.1), @@ -26,17 +27,13 @@ Imports: RColorBrewer (>= 1.1-2), rnaturalearth (>= 1.0.1), rnaturalearthdata (>= 1.0.0), - RstoxBase (>= 2.1.1), - RstoxData (>= 2.1.1), - sf (>= 1.0.0), - stats (>= 3.5.0), - utils (>= 3.5.0) + RstoxBase (>= 2.2.0-9002), + RstoxData (>= 2.2.0-9002), + sf (>= 1.0.0) Suggests: knitr, - Reca, rmarkdown, tinytest Additional_repositories: https://stoxproject.github.io/repo -VignetteBuilder: knitr RoxygenNote: 7.3.2 diff --git a/NEWS.md b/NEWS.md index e0eb3a4c..df80f0a1 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,3 +1,8 @@ +# RstoxFDA v1.7.0-9001 +* Temporary removing Reca as suggests due to failure to compile on macOS and Windows. +* Pre-generated help HTLM pages using the latest RstoxBuild. + + # RstoxFDA v1.6 * Fixed issue with plotting with other column variables than 'Area' in PlotFisheriesOverviewSpatial (#147) * Fixed ordering of age groups in ReportAnalyticalCatchAtAge (#134) diff --git a/R/StoxAnalysisFunctions.R b/R/StoxAnalysisFunctions.R index 1e4eb72c..5aff7d1c 100644 --- a/R/StoxAnalysisFunctions.R +++ b/R/StoxAnalysisFunctions.R @@ -214,7 +214,7 @@ warnMissingLandings <- function(StoxBiotic, StoxLanding, effects){ #' \code{\link[RstoxFDA]{CarNeighbours}}, mandatory if 'carEffect' is given. #' Identifies which values of the carEffect are to be considered as neighbours. #' @param CellEffect -#' Configures the cell effect. Defaults to `r RstoxFDA:::stoxFunctionAttributes$PrepareRecaEstimate$functionParameterDefaults$CellEffect`. If 'All', an interaction term will be added with all covariates that in the cell (whether they are fixed or random effects). +#' Configures the cell effect. Defaults to `r RstoxFDA::stoxFunctionAttributes$PrepareRecaEstimate$functionParameterDefaults$CellEffect`. If 'All', an interaction term will be added with all covariates that in the cell (whether they are fixed or random effects). #' Any CAR-effect is always included in the cell effect. #' @param UseAgingError #' If TRUE, aging, error parameters will be incorporated in the models. @@ -240,7 +240,7 @@ warnMissingLandings <- function(StoxBiotic, StoxLanding, effects){ #' optional, resolution for length measurements in cm. #' If not provided modal value from data is used. #' @param HatchDay -#' defaults to Defaults to `r RstoxFDA:::stoxFunctionAttributes$PrepareRecaEstimate$functionParameterDefaults$HatchDay`. +#' defaults to Defaults to `r RstoxFDA::stoxFunctionAttributes$PrepareRecaEstimate$functionParameterDefaults$HatchDay`. #' encoding the day of the year when fish is consider to transition from one age to the next. 1 represents Jan 1st. #' @return \code{\link[RstoxFDA]{RecaData}} Data prepared for running Reca. #' @seealso @@ -564,10 +564,10 @@ RunRecaEstimate <- function(RecaData, Nsamples=integer(), Burnin=integer(), Thin #' @param RecaData \code{\link[RstoxFDA]{RecaData}} as returned from \code{\link[RstoxFDA]{PrepareRecaEstimate}} #' @param Nsamples number of MCMC samples that will be made available for \code{\link[Reca]{eca.predict}}. See documentation for \code{\link[Reca]{eca.estimate}}, #' @param Burnin number of MCMC samples run and discarded by \code{\link[Reca]{eca.estimate}} before any samples are saved. See documentation for \code{\link[Reca]{eca.estimate}}. -#' @param Lgamodel The length age relationship to use for length-age fits (options: "log-linear", "non-linear": Schnute-Richards model). See documentation for \code{\link[Reca]{eca.estimate}}. Defaults to `r RstoxFDA:::stoxFunctionAttributes$ParameterizeRecaModels$functionParameterDefaults$Lgamodel` +#' @param Lgamodel The length age relationship to use for length-age fits (options: "log-linear", "non-linear": Schnute-Richards model). See documentation for \code{\link[Reca]{eca.estimate}}. Defaults to `r RstoxFDA::stoxFunctionAttributes$ParameterizeRecaModels$functionParameterDefaults$Lgamodel` #' @param ResultDirectory a directory where Reca may store temp-files \code{\link[Reca]{eca.estimate}} and \code{\link[Reca]{eca.predict}}. See details. -#' @param Thin controls how many iterations are run between each samples saved. Defaults to `r RstoxFDA:::stoxFunctionAttributes$ParameterizeRecaModels$functionParameterDefaults$Thin`. This may be set to account for autocorrelation introduced by Metropolis-Hastings simulation. see documentation for \code{\link[Reca]{eca.estimate}} -#' @param Delta.age see documentation for \code{\link[Reca]{eca.estimate}}. Defaults to `r RstoxFDA:::stoxFunctionAttributes$ParameterizeRecaModels$functionParameterDefaults$Delta.age`. +#' @param Thin controls how many iterations are run between each samples saved. Defaults to `r RstoxFDA::stoxFunctionAttributes$ParameterizeRecaModels$functionParameterDefaults$Thin`. This may be set to account for autocorrelation introduced by Metropolis-Hastings simulation. see documentation for \code{\link[Reca]{eca.estimate}} +#' @param Delta.age see documentation for \code{\link[Reca]{eca.estimate}}. Defaults to `r RstoxFDA::stoxFunctionAttributes$ParameterizeRecaModels$functionParameterDefaults$Delta.age`. #' @param Seed see documentation for \code{\link[Reca]{eca.estimate}}. Defaults to random seed. #' @param UseCachedData if TRUE Parameterization is not run, but any previous runs for exactly the same arguments are returned. #' @return \code{\link[RstoxFDA]{RecaParameterData}} results from Reca Model Parameterization. @@ -738,10 +738,10 @@ getLandingsFromStoxLandings <- function(RecaParameterData, StoxLandingData, Temp #' @param StoxLandingData Landings data (\code{\link[RstoxData]{StoxLandingData}}). #' @param GroupingVariables character vector identifying columns in 'StoxLandingData' that results should be provided for. #' @param TemporalResolution -#' Code for temporal resolution in landings: "Month" or "Quarter". Defaults to `r RstoxFDA:::stoxFunctionAttributes$RunRecaModels$functionParameterDefaults$TemporalResolution`. +#' Code for temporal resolution in landings: "Month" or "Quarter". Defaults to `r RstoxFDA::stoxFunctionAttributes$RunRecaModels$functionParameterDefaults$TemporalResolution`. #' Regulates temporal resolution for calculating fractional ages of fish. #' Not to be confused with any temporal covariate. -#' @param Caa.burnin see documentation for \code{\link[Reca]{eca.predict}}. Defaults to `r RstoxFDA:::stoxFunctionAttributes$RunRecaModels$functionParameterDefaults$Caa.burnin`. +#' @param Caa.burnin see documentation for \code{\link[Reca]{eca.predict}}. Defaults to `r RstoxFDA::stoxFunctionAttributes$RunRecaModels$functionParameterDefaults$Caa.burnin`. #' @param CollapseLength indicates whether length groups should be collapsed in result. Defaults to TRUE. See details. #' @return \code{\link[RstoxFDA]{RecaCatchAtAge}} #' @seealso \code{\link[RstoxFDA]{ParameterizeRecaModels}} for model parameterisation, diff --git a/R/StoxBaselineFunctions.R b/R/StoxBaselineFunctions.R index 42f5081a..0305aa18 100644 --- a/R/StoxBaselineFunctions.R +++ b/R/StoxBaselineFunctions.R @@ -715,7 +715,7 @@ appendTemporal <- function(table, temporalColumn, temporalDefinition, datecolumn #' two choices are offered for the name of the added column (see argument 'ColumnName'). #' @param StoxLandingData \code{\link[RstoxData]{StoxLandingData}} data which will be annotated. #' @param TemporalDefinition \code{\link[RstoxFDA]{TemporalDefinition}} definition of temporal category. -#' @param ColumnName Name of the added column. Defaults to `r RstoxFDA:::stoxFunctionAttributes$AddPeriodStoxLanding$functionParameterDefaults$ColumnName`. +#' @param ColumnName Name of the added column. Defaults to `r RstoxFDA::stoxFunctionAttributes$AddPeriodStoxLanding$functionParameterDefaults$ColumnName`. #' @return StoxLandingData with column appended. See \code{\link[RstoxData]{StoxLandingData}}. #' @seealso #' \code{\link[RstoxFDA]{DefinePeriod}} for configuring the temporal definition, @@ -756,7 +756,7 @@ AddPeriodStoxLanding <- function(StoxLandingData, TemporalDefinition, ColumnName #' \code{\link[RstoxFDA]{DefinePeriod}} #' @param StoxBioticData \code{\link[RstoxData]{StoxLandingData}} data which will be annotated with period. #' @param TemporalDefinition \code{\link[RstoxFDA]{TemporalDefinition}} definition of temporal category. -#' @param ColumnName specifies which column the area should be added to. Defaults to `r RstoxFDA:::stoxFunctionAttributes$AddPeriodStoxBiotic$functionParameterDefaults$ColumnName`. +#' @param ColumnName specifies which column the area should be added to. Defaults to `r RstoxFDA::stoxFunctionAttributes$AddPeriodStoxBiotic$functionParameterDefaults$ColumnName`. #' @return StoxBioticData with column appended. See \code{\link[RstoxData]{StoxBioticData}}. #' \code{\link[RstoxFDA]{DefinePeriod}} for configuring the temporal definition, #' \code{\link[RstoxFDA]{AddStratumStoxLanding}} for similar function for landing data, @@ -804,7 +804,7 @@ AddPeriodStoxBiotic <- function(StoxBioticData, TemporalDefinition, ColumnName=c #' \code{\link[RstoxFDA]{AddAreaPositionStoxLanding}} may be used to append positions, based on area codes. #' @param StoxLandingData \code{\link[RstoxData]{StoxLandingData}} data which will be annotated. Needs postions appended. See details. #' @param StratumPolygon Definition of spatial strata. See \code{\link[RstoxBase]{StratumPolygon}} -#' @param ColumnName specifies which column the area should be added to. See details. Defaults to `r RstoxFDA:::stoxFunctionAttributes$AddStratumStoxLanding$functionParameterDefaults$ColumnName`. +#' @param ColumnName specifies which column the area should be added to. See details. Defaults to `r RstoxFDA::stoxFunctionAttributes$AddStratumStoxLanding$functionParameterDefaults$ColumnName`. #' @return StoxLandingData with column appended. See \code{\link[RstoxData]{StoxLandingData}}. #' @seealso \code{\link[RstoxBase]{DefineStratumPolygon}} for configuring stratum definitions. #' \code{\link[RstoxFDA]{AddAreaPositionStoxLanding}} for adding positions to landings, @@ -854,7 +854,7 @@ AddStratumStoxLanding <- function(StoxLandingData, StratumPolygon, ColumnName=ch #' The strata are added to the new column 'Stratum'. #' @param StoxBioticData \code{\link[RstoxData]{StoxBioticData}} data which will be annotated. Needs postions appended. See details. #' @param StratumPolygon Definition of spatial strata. See \code{\link[RstoxBase]{StratumPolygon}} -#' @param ColumnName specifies which column the area should be added to. Defaults to `r RstoxFDA:::stoxFunctionAttributes$AddStratumStoxBiotic$functionParameterDefaults$ColumnName`. +#' @param ColumnName specifies which column the area should be added to. Defaults to `r RstoxFDA::stoxFunctionAttributes$AddStratumStoxBiotic$functionParameterDefaults$ColumnName`. #' @return StoxBioticData with column appended to data.table 'Station'. See \code{\link[RstoxData]{StoxBioticData}}. #' @seealso \code{\link[RstoxBase]{DefineStratumPolygon}} for configuring stratum definitions. #' \code{\link[RstoxFDA]{AddStratumStoxLanding}} for similar function for landing data, @@ -873,7 +873,7 @@ AddStratumStoxBiotic <- function(StoxBioticData, StratumPolygon, ColumnName=char checkBioticNotEmpty(StoxBioticData, "Station") checkMandatory(StratumPolygon) - columnName <- getDefault(ColumnName, "ColumnName", F, RstoxFDA:::stoxFunctionAttributes$AddStratumStoxBiotic$functionParameterDefaults$ColumnName) + columnName <- getDefault(ColumnName, "ColumnName", F, RstoxFDA::stoxFunctionAttributes$AddStratumStoxBiotic$functionParameterDefaults$ColumnName) missing <- StoxBioticData$Station[is.na(StoxBioticData$Station$Latitude) | is.na(StoxBioticData$Station$Longitude),] if (nrow(missing) > 0){ @@ -1080,7 +1080,7 @@ SetTimeBiotic <- function(BioticData, Time=character(), Overwrite=F){ #' #' @param BioticData \code{\link[RstoxData]{BioticData}} data for which short gear codes should be set #' @return \code{\link[RstoxData]{BioticData}} -#' @seealso \code{\link{RstoxData}{RstoxData::StoxBiotic}} For converting \code{\link[RstoxData]{BioticData}} to \code{\link[RstoxData]{StoxBioticData}}. +#' @seealso \code{\link[RstoxData]{StoxBiotic}} For converting \code{\link[RstoxData]{BioticData}} to \code{\link[RstoxData]{StoxBioticData}}. #' @concept nmdbiotic functions #' @concept gear coding functions #' @concept StoX-functions diff --git a/R/StoxPlots.R b/R/StoxPlots.R index 9d92d8bb..db6d568e 100644 --- a/R/StoxPlots.R +++ b/R/StoxPlots.R @@ -229,16 +229,16 @@ PlotFisheriesOverviewTable <- function(ReportFdaLandingData){ #' #' @param ReportFdaSamplingData \code{\link[RstoxFDA]{ReportFdaSamplingData}} with sampling report to plot #' @param ColumnVariable The grouping variable in 'ReportFdaSamplingData' that should be used for columns in the cell plot -#' @param Measurement The kind of fish measurement that should be used to determine the color of a cell. Defaults to `r RstoxFDA:::stoxFunctionAttributes$PlotSamplingOverviewCell$functionParameterDefaults$Measurement`. +#' @param Measurement The kind of fish measurement that should be used to determine the color of a cell. Defaults to `r RstoxFDA::stoxFunctionAttributes$PlotSamplingOverviewCell$functionParameterDefaults$Measurement`. #' @param UseDefaultColorSettings Logical, whether to use default color settings or the value specified for the function parameters MinVessels, MinCatches, MinMeasurements, ColorNoSamples, ColorFewCatches, ColorFewVessels, ColorGoodSampling -#' @param MinVessels The minimum number of vessels sampled for a quality "Good" coloring of a cell. Defaults to `r RstoxFDA:::stoxFunctionAttributes$PlotSamplingOverviewCell$functionParameterDefaults$MinVessels`. -#' @param MinCatches The minimum number of catches sampled for quality "Good" or "Few vessels" coloring of a cell. Defaults to `r RstoxFDA:::stoxFunctionAttributes$PlotSamplingOverviewCell$functionParameterDefaults$MinCatches`. -#' @param MinMeasurements The minimum number of measurements (parameter 'Measurement') for quality "Good", "Few vessels" or "Few catches" coloring of a cell. Defaults to `r RstoxFDA:::stoxFunctionAttributes$PlotSamplingOverviewCell$functionParameterDefaults$MinMeasurements`. -#' @param ColorNoSamples Color to use for cells not sampled. Defaults to `r RstoxFDA:::stoxFunctionAttributes$PlotSamplingOverviewCell$functionParameterDefaults$ColorNoSamples`. -#' @param ColorFewMeasurements Color to use for cells with few measurements. Defaults to `r RstoxFDA:::stoxFunctionAttributes$PlotSamplingOverviewCell$functionParameterDefaults$ColorFewMeasurements`. -#' @param ColorFewCatches Color to use for cells with Few Catches. See details. Defaults to `r RstoxFDA:::stoxFunctionAttributes$PlotSamplingOverviewCell$functionParameterDefaults$ColorFewCatches`. -#' @param ColorFewVessels Color to use for cells with Few Vessels See details. Defaults to `r RstoxFDA:::stoxFunctionAttributes$PlotSamplingOverviewCell$functionParameterDefaults$ColorFewVessels`. -#' @param ColorGoodSampling Color to use for cells with Good sampling. See details. Defaults to `r RstoxFDA:::stoxFunctionAttributes$PlotSamplingOverviewCell$functionParameterDefaults$ColorGoodSampling`. +#' @param MinVessels The minimum number of vessels sampled for a quality "Good" coloring of a cell. Defaults to `r RstoxFDA::stoxFunctionAttributes$PlotSamplingOverviewCell$functionParameterDefaults$MinVessels`. +#' @param MinCatches The minimum number of catches sampled for quality "Good" or "Few vessels" coloring of a cell. Defaults to `r RstoxFDA::stoxFunctionAttributes$PlotSamplingOverviewCell$functionParameterDefaults$MinCatches`. +#' @param MinMeasurements The minimum number of measurements (parameter 'Measurement') for quality "Good", "Few vessels" or "Few catches" coloring of a cell. Defaults to `r RstoxFDA::stoxFunctionAttributes$PlotSamplingOverviewCell$functionParameterDefaults$MinMeasurements`. +#' @param ColorNoSamples Color to use for cells not sampled. Defaults to `r RstoxFDA::stoxFunctionAttributes$PlotSamplingOverviewCell$functionParameterDefaults$ColorNoSamples`. +#' @param ColorFewMeasurements Color to use for cells with few measurements. Defaults to `r RstoxFDA::stoxFunctionAttributes$PlotSamplingOverviewCell$functionParameterDefaults$ColorFewMeasurements`. +#' @param ColorFewCatches Color to use for cells with Few Catches. See details. Defaults to `r RstoxFDA::stoxFunctionAttributes$PlotSamplingOverviewCell$functionParameterDefaults$ColorFewCatches`. +#' @param ColorFewVessels Color to use for cells with Few Vessels See details. Defaults to `r RstoxFDA::stoxFunctionAttributes$PlotSamplingOverviewCell$functionParameterDefaults$ColorFewVessels`. +#' @param ColorGoodSampling Color to use for cells with Good sampling. See details. Defaults to `r RstoxFDA::stoxFunctionAttributes$PlotSamplingOverviewCell$functionParameterDefaults$ColorGoodSampling`. #' @param TextSize size of text in cellplot. If not provided, a suitable size will be calculated. #' @return \code{\link[RstoxFDA]{PlotSamplingOverviewCellData}} #' @seealso Provide data for this plot with \code{\link[RstoxFDA]{ReportFdaSampling}} @@ -385,21 +385,21 @@ PlotSamplingOverviewCell <- function(ReportFdaSamplingData, ColumnVariable, Meas #' @param ReportFdaSamplingData \code{\link[RstoxFDA]{ReportFdaSamplingData}} with sampling report to plot #' @param Cumulative logical indicating if the cumulative fraction of the landed weight should be plotted on a secondary axis. #' @param OtherPercentage Controls how many bars are shown. The smallest 'OtherPercentage' % bars are combined into one bar. -#' @param ColorScheme 'CellPlot' or 'Gradient'. See details. Defaults to `r RstoxFDA:::stoxFunctionAttributes$PlotSamplingCoverage$functionParameterDefaults$ColorScheme`. -#' @param Measurement The kind of fish measurement that should be used to determine the color of a cell. Defaults to `r RstoxFDA:::stoxFunctionAttributes$PlotSamplingCoverage$functionParameterDefaults$Measurement`. +#' @param ColorScheme 'CellPlot' or 'Gradient'. See details. Defaults to `r RstoxFDA::stoxFunctionAttributes$PlotSamplingCoverage$functionParameterDefaults$ColorScheme`. +#' @param Measurement The kind of fish measurement that should be used to determine the color of a cell. Defaults to `r RstoxFDA::stoxFunctionAttributes$PlotSamplingCoverage$functionParameterDefaults$Measurement`. #' @param UseDefaultColorSettings Logical, whether to use default color settings or the values specified in other arguments to this function. #' @param MinVessels For color scheme "CellPlot". The minimum number of vessels sampled for a quality "Good" coloring of a cell. Defaults to 2. #' @param MinCatches color scheme "CellPlot". The minimum number of catches sampled for quality "Good" or "Few vessels" coloring of a cell. Defaults to 2. #' @param MinMeasurements color scheme "CellPlot". The minimum number of measurements (parameter 'Measurement') for quality "Good", "Few vessels" or "Few catches" coloring of a cell. Defaults to 100. -#' @param ColorNoSamples Color to use for cells not sampled. Defaults to `r RstoxFDA:::stoxFunctionAttributes$PlotSamplingCoverage$functionParameterDefaults$ColorNoSamples`. -#' @param ColorFewMeasurements Color to use for cells with few measurements. Defaults to `r RstoxFDA:::stoxFunctionAttributes$PlotSamplingCoverage$functionParameterDefaults$ColorFewMeasurements`. -#' @param ColorFewCatches Color to use for cells with Few Catches. See details. Defaults to `r RstoxFDA:::stoxFunctionAttributes$PlotSamplingCoverage$functionParameterDefaults$ColorFewCatches`. -#' @param ColorFewVessels Color to use for cells with Few Vessels See details. Defaults to `r RstoxFDA:::stoxFunctionAttributes$PlotSamplingCoverage$functionParameterDefaults$ColorFewVessels`. -#' @param ColorGoodSampling Color to use for cells with Good sampling. See details. Defaults to `r RstoxFDA:::stoxFunctionAttributes$PlotSamplingCoverage$functionParameterDefaults$ColorGoodSampling`. +#' @param ColorNoSamples Color to use for cells not sampled. Defaults to `r RstoxFDA::stoxFunctionAttributes$PlotSamplingCoverage$functionParameterDefaults$ColorNoSamples`. +#' @param ColorFewMeasurements Color to use for cells with few measurements. Defaults to `r RstoxFDA::stoxFunctionAttributes$PlotSamplingCoverage$functionParameterDefaults$ColorFewMeasurements`. +#' @param ColorFewCatches Color to use for cells with Few Catches. See details. Defaults to `r RstoxFDA::stoxFunctionAttributes$PlotSamplingCoverage$functionParameterDefaults$ColorFewCatches`. +#' @param ColorFewVessels Color to use for cells with Few Vessels See details. Defaults to `r RstoxFDA::stoxFunctionAttributes$PlotSamplingCoverage$functionParameterDefaults$ColorFewVessels`. +#' @param ColorGoodSampling Color to use for cells with Good sampling. See details. Defaults to `r RstoxFDA::stoxFunctionAttributes$PlotSamplingCoverage$functionParameterDefaults$ColorGoodSampling`. #' @param SamplingUnit color scheme "Gradient". The sampling unit used: "Vessels","Catches", or "Measurement" -#' @param GradientLowColor Color to use for low end of color gradient. See details. Defaults to `r RstoxFDA:::stoxFunctionAttributes$PlotSamplingCoverage$functionParameterDefaults$GradientLowColor`. -#' @param GradientMidColor Color to use for middle of color gradient. See details. Defaults to `r RstoxFDA:::stoxFunctionAttributes$PlotSamplingCoverage$functionParameterDefaults$GradientMidColor`. -#' @param GradientHighColor Color to use for high end of color gradient. See details. Defaults to `r RstoxFDA:::stoxFunctionAttributes$PlotSamplingCoverage$functionParameterDefaults$GradientHighColor`. +#' @param GradientLowColor Color to use for low end of color gradient. See details. Defaults to `r RstoxFDA::stoxFunctionAttributes$PlotSamplingCoverage$functionParameterDefaults$GradientLowColor`. +#' @param GradientMidColor Color to use for middle of color gradient. See details. Defaults to `r RstoxFDA::stoxFunctionAttributes$PlotSamplingCoverage$functionParameterDefaults$GradientMidColor`. +#' @param GradientHighColor Color to use for high end of color gradient. See details. Defaults to `r RstoxFDA::stoxFunctionAttributes$PlotSamplingCoverage$functionParameterDefaults$GradientHighColor`. #' @return \code{\link[RstoxFDA]{PlotSamplingCoverageData}} #' @seealso Provide data for this plot with \code{\link[RstoxFDA]{ReportFdaSampling}} #' @concept StoX-functions @@ -863,16 +863,16 @@ PlotCatchAtAgeCovariances <- function(ReportFdaCatchAtAgeCovarianceData){ #' That analysis checks the convergence of model parameters, rather than the estimated parameters, #' and supports handling a large number of model parameters, and filter out indications of non-convergence. #' @param RecaCatchAtAge Results from MCMC simulations (\code{\link[RstoxFDA]{RecaCatchAtAge}}). -#' @param Parameter which parameter plot traceplots for "TotalCatch", "MeanLength", or "MeanWeight", Defaults to `r RstoxFDA:::stoxFunctionAttributes$PlotPosteriorTraces$functionParameterDefaults$TotalCatch` +#' @param Parameter which parameter plot traceplots for "TotalCatch", "MeanLength", or "MeanWeight", Defaults to `r RstoxFDA::stoxFunctionAttributes$PlotPosteriorTraces$functionParameterDefaults$TotalCatch` #' @param PlusGroup If given, ages 'PlusGroup' or older are included in a plus group. #' @param LengthInterval width of length bins in cm, for TotalCatch traceplots. If not provided, length inteval will be set to the maximum length group.. #' @param UseDefaultPlotSettings if TRUE default plot settings are used, rather than the values provided by Nclust, Iter.max, Nstart, LowerQuant, UpperQuant, CatLimit, and Legend -#' @param Nclust the number of plots to distribute the ages and plus group on. Defaults to `r RstoxFDA:::stoxFunctionAttributes$PlotPosteriorTraces$functionParameterDefaults$Nclust`. -#' @param Iter.max maximal number of iterations for k-means clustering deciding which ages are plotted in same plot. Defaults to `r RstoxFDA:::stoxFunctionAttributes$PlotPosteriorTraces$functionParameterDefaults$Iter.max`. -#' @param Nstart the number of random sets chosen for the k-means clustering. Defaults to `r RstoxFDA:::stoxFunctionAttributes$PlotPosteriorTraces$functionParameterDefaults$Nstart`. -#' @param LowerQuant lower quantile in each age group to plot as points. Defaults to `r RstoxFDA:::stoxFunctionAttributes$PlotPosteriorTraces$functionParameterDefaults$LowerLuant`. -#' @param UpperQuant upper quantile in each age group to plot as points. Defaults to `r RstoxFDA:::stoxFunctionAttributes$PlotPosteriorTraces$functionParameterDefaults$UpperQuant`. -#' @param CatLimit the upper limit for number of ages in a plot using categorical coloring. Plots with more than this number of age greoups will use a gradient coloring scheme. Defaults to `r RstoxFDA:::stoxFunctionAttributes$PlotPosteriorTraces$functionParameterDefaults$CatLimit`. +#' @param Nclust the number of plots to distribute the ages and plus group on. Defaults to `r RstoxFDA::stoxFunctionAttributes$PlotPosteriorTraces$functionParameterDefaults$Nclust`. +#' @param Iter.max maximal number of iterations for k-means clustering deciding which ages are plotted in same plot. Defaults to `r RstoxFDA::stoxFunctionAttributes$PlotPosteriorTraces$functionParameterDefaults$Iter.max`. +#' @param Nstart the number of random sets chosen for the k-means clustering. Defaults to `r RstoxFDA::stoxFunctionAttributes$PlotPosteriorTraces$functionParameterDefaults$Nstart`. +#' @param LowerQuant lower quantile in each age group to plot as points. Defaults to `r RstoxFDA::stoxFunctionAttributes$PlotPosteriorTraces$functionParameterDefaults$LowerLuant`. +#' @param UpperQuant upper quantile in each age group to plot as points. Defaults to `r RstoxFDA::stoxFunctionAttributes$PlotPosteriorTraces$functionParameterDefaults$UpperQuant`. +#' @param CatLimit the upper limit for number of ages in a plot using categorical coloring. Plots with more than this number of age greoups will use a gradient coloring scheme. Defaults to `r RstoxFDA::stoxFunctionAttributes$PlotPosteriorTraces$functionParameterDefaults$CatLimit`. #' @param Legend If true legend will be plotted. #' @return \code{\link[RstoxFDA]{PlotPosteriorTracesData}} #' @concept StoX-functions diff --git a/R/StoxReportFunctions.R b/R/StoxReportFunctions.R index ab227ce4..b845063a 100644 --- a/R/StoxReportFunctions.R +++ b/R/StoxReportFunctions.R @@ -38,8 +38,8 @@ check_intervalWidth <- function(intervalwidth){ #' \code{\link[RstoxData]{StoxLandingData}} data with landings from fisheries #' and approriate columns added for identifying corresponding samples #' @param GroupingVariables Columns of 'StoxBioticData' and 'StoxLandingData' that partitions the fisheries. If not provided, a single row for all landings will be produced. -#' @param Decimals integer specifying the number of decimals to report for 'LandedRoundWeight' and 'WeightOfSampledCatches'. Defaults to `r RstoxFDA:::stoxFunctionAttributes$ReportFdaSampling$functionParameterDefaults$Decimals`. -#' @param Unit unit for the weights 'LandedRoundWeight' and 'WeightOfSampledCatches'. Defaults to `r RstoxFDA:::stoxFunctionAttributes$ReportFdaSampling$functionParameterDefaults$Unit` +#' @param Decimals integer specifying the number of decimals to report for 'LandedRoundWeight' and 'WeightOfSampledCatches'. Defaults to `r RstoxFDA::stoxFunctionAttributes$ReportFdaSampling$functionParameterDefaults$Decimals`. +#' @param Unit unit for the weights 'LandedRoundWeight' and 'WeightOfSampledCatches'. Defaults to `r RstoxFDA::stoxFunctionAttributes$ReportFdaSampling$functionParameterDefaults$Unit` #' @param SamplingVariables Columns of 'StoxBioticData' identifying sampling variables to be use to partition the report. See details. #' @return \code{\link[RstoxFDA]{ReportFdaSamplingData}} #' @concept landings functions @@ -186,8 +186,8 @@ ReportFdaSampling <- function(StoxBioticData, StoxLandingData, GroupingVariables #' \code{\link[RstoxData]{StoxLandingData}} data with landings from fisheries #' and approriate columns added for identifying corresponding samples #' @param GroupingVariables Columns of 'StoxBioticData' and 'StoxLandingData' that partitions the fisheries. If not provided, a single row for all landings will be produced. -#' @param Decimals integer specifying the number of decimals to report for 'LandedRoundWeight' and 'WeightOfSampledCatches'. Defaults to `r RstoxFDA:::stoxFunctionAttributes$ReportFdaLandings$functionParameterDefaults$Decimals`. -#' @param Unit unit for the weights 'LandedRoundWeight' and 'WeightOfSampledCatches'. Defaults to `r RstoxFDA:::stoxFunctionAttributes$ReportFdaLandings$functionParameterDefaults$Unit`. +#' @param Decimals integer specifying the number of decimals to report for 'LandedRoundWeight' and 'WeightOfSampledCatches'. Defaults to `r RstoxFDA::stoxFunctionAttributes$ReportFdaLandings$functionParameterDefaults$Decimals`. +#' @param Unit unit for the weights 'LandedRoundWeight' and 'WeightOfSampledCatches'. Defaults to `r RstoxFDA::stoxFunctionAttributes$ReportFdaLandings$functionParameterDefaults$Unit`. #' @return \code{\link[RstoxFDA]{ReportFdaLandingData}} #' @concept landings functions #' @concept StoX-functions @@ -440,8 +440,8 @@ setLengthGroup <- function(LengthReport, interval){ #' The units considered valid for catch at age in numbers are those listed for quantity 'cardinaltiy' in \code{\link[RstoxData]{StoxUnits}} #' @param RecaCatchAtAge Results from MCMC simulations (\code{\link[RstoxFDA]{RecaCatchAtAge}}). #' @param PlusGroup If given, ages 'PlusGroup' or older are included in a plus group. -#' @param IntervalWidth The width of the reported credible interval. A value of 0.9 gives 90 per cent credible intervals. Defaults to `r RstoxFDA:::stoxFunctionAttributes$ReportRecaCatchAtAge$functionParameterDefaults$IntervalWidth` -#' @param Decimals integer specifying the number of decimals to report for 'CatchAtAge', 'SD', 'Low' and 'High'. Defaults to `r RstoxFDA:::stoxFunctionAttributes$ReportRecaCatchAtAge$functionParameterDefaults$Decimals`. +#' @param IntervalWidth The width of the reported credible interval. A value of 0.9 gives 90 per cent credible intervals. Defaults to `r RstoxFDA::stoxFunctionAttributes$ReportRecaCatchAtAge$functionParameterDefaults$IntervalWidth` +#' @param Decimals integer specifying the number of decimals to report for 'CatchAtAge', 'SD', 'Low' and 'High'. Defaults to `r RstoxFDA::stoxFunctionAttributes$ReportRecaCatchAtAge$functionParameterDefaults$Decimals`. #' @param Unit unit for 'CatchAtAge', 'SD', 'Low' and 'High' #' @return \code{\link[RstoxFDA]{ReportFdaCatchAtAgeData}} #' @seealso \code{\link[RstoxFDA]{RunRecaModels}} for running Reca-analysis and \code{\link[RstoxFDA]{ReportRecaCatchAtLength}} for reporting length composition. @@ -518,7 +518,7 @@ ReportRecaCatchAtAge <- function(RecaCatchAtAge, PlusGroup=integer(), IntervalWi #' The units considered valid for catch at age in numbers are those listed for quantity 'cardinaltiy' in \code{\link[RstoxData]{StoxUnits}} #' @param RecaCatchAtAge Results from MCMC simulations (\code{\link[RstoxFDA]{RecaCatchAtAge}}). #' @param PlusGroup If given, ages 'PlusGroup' or older are included in a plus group. -#' @param Decimals integer specifying the number of decimals to report for 'Covariance'. Defaults to `r RstoxFDA:::stoxFunctionAttributes$ReportRecaCatchAtAgeCovariance$functionParameterDefaults$Decimals`. +#' @param Decimals integer specifying the number of decimals to report for 'Covariance'. Defaults to `r RstoxFDA::stoxFunctionAttributes$ReportRecaCatchAtAgeCovariance$functionParameterDefaults$Decimals`. #' @param Unit unit for 'CatchAtAge'. Covariance will be provided as the square of this unit. #' @return \code{\link[RstoxFDA]{ReportFdaCatchAtAgeCovarianceData}} #' @seealso \code{\link[RstoxFDA]{RunRecaModels}} for running Reca-analysis and \code{\link[RstoxFDA]{ReportRecaCatchAtLength}} for reporting length composition. @@ -599,8 +599,8 @@ ReportRecaCatchAtAgeCovariance <- function(RecaCatchAtAge, PlusGroup=integer(), #' #' The units considered valid for catch at length in numbers are those listed for quantity 'cardinaltiy' in \code{\link[RstoxData]{StoxUnits}} #' @param RecaCatchAtAge Results from MCMC simulations (\code{\link[RstoxFDA]{RecaCatchAtAge}}). -#' @param IntervalWidth The width of the reported credible interval. A value of 0.9 gives 90 per cent credible intervals. Defaults to `r RstoxFDA:::stoxFunctionAttributes$ReportRecaCatchAtLength$functionParameterDefaults$IntervalWidth`. -#' @param Decimals integer specifying the number of decimals to report for 'CatchAtLength', 'SD', 'Low' and 'High'. Defaults to `r RstoxFDA:::stoxFunctionAttributes$ReportRecaCatchAtLength$functionParameterDefaults$Decimals`. +#' @param IntervalWidth The width of the reported credible interval. A value of 0.9 gives 90 per cent credible intervals. Defaults to `r RstoxFDA::stoxFunctionAttributes$ReportRecaCatchAtLength$functionParameterDefaults$IntervalWidth`. +#' @param Decimals integer specifying the number of decimals to report for 'CatchAtLength', 'SD', 'Low' and 'High'. Defaults to `r RstoxFDA::stoxFunctionAttributes$ReportRecaCatchAtLength$functionParameterDefaults$Decimals`. #' @param Unit unit for 'CatchAtLength', 'SD', 'Low' and 'High' #' @param LengthInterval width of length bins in cm. If not provided, the interval in 'RecaCatchAtAge' will be used. #' @return \code{\link[RstoxFDA]{ReportFdaCatchAtLengthData}} @@ -987,18 +987,18 @@ ReportRecaLengthAtAge <- function(RecaCatchAtAge, PlusGroup=integer(), IntervalW #' Rounding of numbers according to the argument 'Decimals' is done with \code{\link[base]{round}}, #' so that negative numbers specify rounding to powers of ten, and rounding of the digit 5 is towards the even digit. #' @param RecaCatchAtAge Results from MCMC simulations (\code{\link[RstoxFDA]{RecaCatchAtAge}}). -#' @param IntervalWidth The width of the reported credible interval. A value to 0.9 gives 90 per cent credible intervals. Defaults to `r RstoxFDA:::stoxFunctionAttributes$ReportRecaCatchStatistics$functionParameterDefaults$IntervalWidth`. +#' @param IntervalWidth The width of the reported credible interval. A value to 0.9 gives 90 per cent credible intervals. Defaults to `r RstoxFDA::stoxFunctionAttributes$ReportRecaCatchStatistics$functionParameterDefaults$IntervalWidth`. #' @param UseDefaultDecimalOptions logical determining whether to use default decimal options. -#' @param DecimalTotalNumber integer specifying the number of decimals to report for 'TotalNumber', and the corresponding 'SD', 'Low' and 'High'. Defaults to `r RstoxFDA:::stoxFunctionAttributes$ReportRecaCatchStatistics$functionParameterDefaults$DecimalTotalNumber`. -#' @param DecimalTotalWeight integer specifying the number of decimals to report for 'TotalWeightDefaults', and the corresponding 'SD', 'Low' and 'High'. Defaults to `r RstoxFDA:::stoxFunctionAttributes$ReportRecaCatchStatistics$functionParameterDefaults$DecimalTotalWeight`. -#' @param DecimalMeanAge integer specifying the number of decimals to report for 'MeanIndividualAge', and the corresponding 'SD', 'Low' and 'High'. `r RstoxFDA:::stoxFunctionAttributes$ReportRecaCatchStatistics$functionParameterDefaults$DecimalMeanAge`. -#' @param DecimalMeanWeight integer specifying the number of decimals to report for 'MeanIndividualWeight', and the corresponding 'SD', 'Low' and 'High'. `r RstoxFDA:::stoxFunctionAttributes$ReportRecaCatchStatistics$functionParameterDefaults$DecimalMeanWeight`. -#' @param DecimalMeanLength integer specifying the number of decimals to report for 'MeanIndividualLength', and the corresponding 'SD', 'Low' and 'High'.`r RstoxFDA:::stoxFunctionAttributes$ReportRecaCatchStatistics$functionParameterDefaults$DecimalMeanLength`. +#' @param DecimalTotalNumber integer specifying the number of decimals to report for 'TotalNumber', and the corresponding 'SD', 'Low' and 'High'. Defaults to `r RstoxFDA::stoxFunctionAttributes$ReportRecaCatchStatistics$functionParameterDefaults$DecimalTotalNumber`. +#' @param DecimalTotalWeight integer specifying the number of decimals to report for 'TotalWeightDefaults', and the corresponding 'SD', 'Low' and 'High'. Defaults to `r RstoxFDA::stoxFunctionAttributes$ReportRecaCatchStatistics$functionParameterDefaults$DecimalTotalWeight`. +#' @param DecimalMeanAge integer specifying the number of decimals to report for 'MeanIndividualAge', and the corresponding 'SD', 'Low' and 'High'. `r RstoxFDA::stoxFunctionAttributes$ReportRecaCatchStatistics$functionParameterDefaults$DecimalMeanAge`. +#' @param DecimalMeanWeight integer specifying the number of decimals to report for 'MeanIndividualWeight', and the corresponding 'SD', 'Low' and 'High'. `r RstoxFDA::stoxFunctionAttributes$ReportRecaCatchStatistics$functionParameterDefaults$DecimalMeanWeight`. +#' @param DecimalMeanLength integer specifying the number of decimals to report for 'MeanIndividualLength', and the corresponding 'SD', 'Low' and 'High'.`r RstoxFDA::stoxFunctionAttributes$ReportRecaCatchStatistics$functionParameterDefaults$DecimalMeanLength`. #' @param UseDefaultUnitOptions logical determining whether to use default unit options. -#' @param UnitTotalNumber unit for total catch in numbers. `r RstoxFDA:::stoxFunctionAttributes$ReportRecaCatchStatistics$functionParameterDefaults$UnitTotalNumber`. -#' @param UnitTotalWeight unit for weight of total catch. `r RstoxFDA:::stoxFunctionAttributes$ReportRecaCatchStatistics$functionParameterDefaults$UnitTotalWeight`. -#' @param UnitMeanWeight unit for mean weight. `r RstoxFDA:::stoxFunctionAttributes$ReportRecaCatchStatistics$functionParameterDefaults$UnitMeanWeight`. -#' @param UnitMeanLength unit for mean length. `r RstoxFDA:::stoxFunctionAttributes$ReportRecaCatchStatistics$functionParameterDefaults$UnitMeanLength`. +#' @param UnitTotalNumber unit for total catch in numbers. `r RstoxFDA::stoxFunctionAttributes$ReportRecaCatchStatistics$functionParameterDefaults$UnitTotalNumber`. +#' @param UnitTotalWeight unit for weight of total catch. `r RstoxFDA::stoxFunctionAttributes$ReportRecaCatchStatistics$functionParameterDefaults$UnitTotalWeight`. +#' @param UnitMeanWeight unit for mean weight. `r RstoxFDA::stoxFunctionAttributes$ReportRecaCatchStatistics$functionParameterDefaults$UnitMeanWeight`. +#' @param UnitMeanLength unit for mean length. `r RstoxFDA::stoxFunctionAttributes$ReportRecaCatchStatistics$functionParameterDefaults$UnitMeanLength`. #' @return \code{\link[RstoxFDA]{ReportFdaSummaryData}} #' @seealso #' \code{\link[RstoxFDA]{RunRecaModels}} for running Reca-analysis @@ -1173,8 +1173,8 @@ ReportRecaCatchStatistics <- function(RecaCatchAtAge, IntervalWidth=numeric(), #' @param StoxLandingData #' \code{\link[RstoxData]{StoxLandingData}} data with landings from fisheries #' @param GroupingVariables Columns of 'StoxLandingData' that partitions the landings into groups SOP tests should be reported for. -#' @param DecimalWeight integer specifying the number of decimals to report for weights: 'TotalWeightEstimated', 'LandedWeight', and 'Difference'. Defaults to `r RstoxFDA:::stoxFunctionAttributes$ReportFdaSOP$functionParameterDefaults$DecimalWeight`. -#' @param DecimalFraction integer specifying the number of decimals to report for 'RelativeDifference'. Defaults to `r RstoxFDA:::stoxFunctionAttributes$ReportFdaSOP$functionParameterDefaults$DecimalFraction`. +#' @param DecimalWeight integer specifying the number of decimals to report for weights: 'TotalWeightEstimated', 'LandedWeight', and 'Difference'. Defaults to `r RstoxFDA::stoxFunctionAttributes$ReportFdaSOP$functionParameterDefaults$DecimalWeight`. +#' @param DecimalFraction integer specifying the number of decimals to report for 'RelativeDifference'. Defaults to `r RstoxFDA::stoxFunctionAttributes$ReportFdaSOP$functionParameterDefaults$DecimalFraction`. #' @param UnitFraction unit for the RelativeDifference. E.g. '0.' for decimal notation or '\%' for percent. #' @return \code{\link[RstoxFDA]{ReportFdaSopData}} #' @seealso @@ -1506,8 +1506,8 @@ crossChainConvergence <- function(modelSummary, iterations, tolerance){ #' In the report InterVariance correspond to their B/n and #' IntraVariance correspond to their W. #' @param ParameterizationSummaryData summary statistics for Reca parameters -#' @param Tolerance threshold for reporting parameters. Defaults to `r RstoxFDA:::stoxFunctionAttributes$ReportParameterConvergence$functionParameterDefaults$Tolerance`. See details -#' @param Decimals integer specifying the number of decimals to report for 'GelmanRubinR'. Defaults to `r RstoxFDA:::stoxFunctionAttributes$ReportParameterConvergence$functionParameterDefaults$Decimals`. +#' @param Tolerance threshold for reporting parameters. Defaults to `r RstoxFDA::stoxFunctionAttributes$ReportParameterConvergence$functionParameterDefaults$Tolerance`. See details +#' @param Decimals integer specifying the number of decimals to report for 'GelmanRubinR'. Defaults to `r RstoxFDA::stoxFunctionAttributes$ReportParameterConvergence$functionParameterDefaults$Decimals`. #' @return \code{\link[RstoxFDA]{ParameterConvergenceData}} #' @export #' @concept StoX-functions diff --git a/inst/extdata/functionArguments.rds b/inst/extdata/functionArguments.rds index 7d9f19c764ec9fdae91334dc622406fd37519562..648393a62f458b808a297df4b55b9e42301c7f42 100644 GIT binary patch literal 104935 zcmV)8K*qlxiwFP!000001MK}8rqxU{!_BVU$GPX8 z*FBHFY<=rn-}?5qzVqGR_|~_-3x9s=yB|Hhw|nzj-}=qJ20#9H;@{sC|9%_(@Au&U ze&bu;`PTR0-<>3!4CBdZFbs>Z7vxbC1jj}C`~g3{15ceVZVl2jgLh#O<-sV;f`cpy z185#RNC#mNr;}ii4x?OjhHsywd5kZdp3>uKG>Au+!NplTID@Z}*?1Dflb~(PAjc`R zgZwO=CBq=hq9BW=S(HbUA{quKmqA+&+on&=@!I|180IjHiZD*{{Nu|L!Cl zN4c2Ox5dNXbr;W%e_$U}Xa8S&iNEvudw=WBr-&FJ;6lox~C8vFP?;1C4y*GxXKu^VVH~RG~KEJ(l zm;xLo#qQI~X|w|%q+hppis*T94aa&n7@UP!9u>D|#c22DPH;{3f~&v1a~?+*(=;oL zZ!h9uadvwcoyUV{mwxmBvM{qS+06%G65ZbGU+)F8Jj&=dF8%gplyl!nJb4CNl-%CQ zi_0X+&!PxAKg*)g?H!zWe(Tz`!En<5JRe3$e4h0uQE_cD9bbC}2=)ALU+?d|)qmsK zFwP5p(jUi@{vgkHpznN;#nU1vV69?_pNHomKZWSsl<^VPep(QGoH9hqk7Ajy&&pAgW@bpFCI_sW?7ou3Pxd)!(*}3ue$FBUs2ClRLru; zyREO@yT(w_KpRG*C=2pzu*Nogp6}2w=_E`|l0o^I(7wyuE|C8OD<+gZ{_x$9}8zUV(TQP|pHqZv}hTum2g&p~&F>hWiJ@ zp?PkNqaA#Cl*6xkcMbql1)jyB>jZT%&2= ze9ms{FFwc62%EmKe-+{cHW@xpz*PDFZ%OrFV`VBOg_ ze|e|96l*T8h!$ZEB359JyTtTeEZEt1pLmz?g5`qJI@F;SN0plCV=BAJY1ojCDU1oD z6lYN|i7v#HbC?6npqLG#HthmTX>!WHTc4ao6Fo->4w!2m@QYxACLr=)9Ou}kUw;DX^BxbU)?$L!LGrde*YFgG zHt^=^@9piWKRH1?oVgvQ^l%$9Gsx-3VKUR?bblKZBDjc)Glfogq!WQrG}T1nlfptd z!S~KG;HbnyJ$!9|rz8W$_KPRs;2F^T;Js+PFInPy*WgER9%VUFjJ^Kb{p-8$T)(~- z_|^vPd1=?L--ii27fYhQaUs8a52T25SdZk}^b`JJCQsk)vt<4o|34u;|E7?z|1cD^ z-{6+Hc=y}*;fGN&WvSaza(>fMGqdu&pKH#zX08f=ZQCm_S7M|hxssntFnu3s(N}n?yIaLGXE2{+_h;;0+dM0(; zo=mR?WCm)&$|F6P4%drMhYw4~h z5o^q4nHZ=A95<5C3O!!VGHb|qNN@l|4GpyHx6E};BIp8Ioahdb_MvnuB|@Z*K^uo} z2c5cVT796jp2Ao_rp{v&@Xfgiy<;3sfrx_`m)ocr9>{)l?=qJ8vaQZ0dhx2(IC8=7x5UVw;0;<#vK-cAoKNJPJKBXp(OJ5aj#q8UtmW^t;vTFH)^hoPcWh06t38K+e)FbOFVykJ9+rB&U z>!RNrosqYqLS^KawKPT(0~>|0Q5aWK7{BAFd^g?uM}k`nhZd;+3`A$aiU{f1dm)J? zr^T7m&kdx@?UQ)2o5x>7?Vf0bNHZ8i2gOAM`@|1-`2;yVbcw6MXt@89eTZI|)}L!< zM)SkNBt4Bmx9W-e_e8#!m@jmD{D*kOwgCV;IMy_Wr}#YOe*0<|eh#dmFuXGkULaa9_k->Y{U8 zOY>FyuQ&?}sf3thTX|pFQuuw<){lUP;G`r63)(h41?Iu(r6A`>b@FI1E8=sTA>?p0T0rAqbnzIZ zHDK5sx5F;5h9b-gEf;X}>;2%VGZCiKZRN_9wpbxSHv24V94sV_weROw= z9>_1>TcNJZS;MQ>0{qUt{o8M2T3T?eI}K}xkH5e zY-e>;c-EfP`F(Qyk)y+U-x+w+d(q_ME>rEi76mcL#3u$S1g|H>ySsrDHg4UzRY_`e z8=BmM6zFqyDJIbiNbCw+;)6WIgLxK??({T^L1NQwv9-11pYm&3hB_@`Qgup${) zE{j6LCMhke{Q$-bXGuZiImir@r9T8SKPW&ZIGGhu{u&_i6Iy{rqt_(Qe*(-7RLm%o zoxXNRGa%yUs^j0DtB(Ic86M(IOZQpUynpZ?*4Dgv6^+i_=-iFYy&;|3B@EkBx2q5D zLPcBOFt@pvwzy#uF*tyLJ|DZVOnnx>+xUlo&|}pSzX5mcMu@8X0!>_21s9uPZO`ppq(_ z#YME6Ps2fU3rKhb2m19N-@I}2=DS;zD#QrVDRtS)enkQ78)wVRCW!@LU-UE{NA19N zrB;N)a|>=*&E!t%4bFXj4{P8~7g*FKE&@2ka5f+vyXsDn?@M|0))gv0s!)yUyCS~; z_v3XJR=yU-JuPq3ygT9JA`6Sz*y}}Hes{%uh$Zg7)cat263u1s=5^HdyoWcTm;M8i zOt9sdq_9jT*3>@5qSjMCEBu;Q)IWb1uBd-D&d!Yj+9;r#Q$V-w={)E7E}?=}IXTbO zHifdeMy{O_oGP;HTp4xqo8cw>N-CN4nE#ek$z?=@HFe1Yd8Vrla2+L+?toC!^yiZ4 zx4!0jBx;TEWB^E1$WcJD7|jxSH#&?#56RGP!-Zcga!g_RoDjRfA5*!X@fWN$pstdU z@&Pbw6&EQGs1!sS;oL!;Yv21x1#YqfzIGweNYd{17ih#KTE3P_ybOI>+Q0hcYRs+= zb?MdB@}O?i0YZb4b`g70z z=wH=VeeI4_x-qrN-``T#Dn{Z#|y!8BZ>IQdb0Wp9X>mR!{+Q zgJ(KG5wSKlVZz)f8|T(`wt#uY#J=%;O75{l8S-?N4WhYj>>E(o0*cX4ES7^cS~R4! zs}k`68lzy67SJ*SHgOq<^Qv!}AEud%eur~H&_FQ5nq6?@QuhWtYN>`Il$bYXlo=ZG zFv@`&=pb@TdR$G*`@#E{dU#lv*xQzO8+h+1zp=R=OsaP|LYoaG7Co1)+|Gmn)~x~* z0uV2z>2xMyeFva20UQ}Yh640vD1$Q4m{Txf8-$jJ5%S13D%D)=(yRur_IfTgu}m?@ z#|SCd+>wQ+IM)GA8_gsGbSiJ9vtl0?0jQ{WhL9k5gZ|J=SnZHcwfgs{Sb8USrN_ae_oS1LmcFIBIk`T zr$wy+HipWLt)XmdICkT-=Uy-bkD_RpV{r!N{($O2N%)y)tkn3XbS+jOv3d8Plgb0FVTI_-MQ zwx$t40a~d2>bG~Pi#c{RFy0UINCLwgNCCqheTmXKUst#C)#QpbeF2`HX+vaYWyxDC3M?LF=AVa?hEvKuc_(kBC02sd@6BleQAAvWI0*m-85H7 z?NKs6sV{TURKOgU5J7vqioD3;0=QGZ^_cGQrPEP7DSdzr1$d2q66v|=>1^jrrhqj# zru1Pj%dE|;j%xjeSh2|r?{|EUe;mdr(yI`JHTv2^ntHu=#%mr$P zewuk`S0~Sn;^A~u@S}yLuD(Xz^jFEqv5D=(DWIDT`sk<%)J8@4Z>F1nV_|75EHBZ* z;wtLj+pnjn0|-b73qb41;^#pJp3npS-EDOBMptii^%Zn=>lkfGNnd<;=j-WD=TuSB z_d-nO^lw4w^aIn2uf;qEd4HCkgeP$Vr#B*>&2gNg>nSm*)5sE&Z1te^-Y|h385a9e zaNX8{YvM9Q4SjRmfhg=GSn}2-HI{=bRk^_Fi?);5ihvHO9!Ih>yV$!4wq2P!~?2-+@|=W3MAK=0yxc_}3|I`;QL# z0i5MLhNDeKUzQ%hfS=Sb1?Ui~%A_G0tB&xKN^gJbttC3DOdo7m9dHy^NcLc9$1*Q` zc93xG?B{K1Ug#j-0MTp!Je^~bfT8;sW4nvOpDICPW>gWYgpKqJb*$nZcpK+5k=EMW z2w|!xQ}kMJR3hXhXDRGp^c;6OF7y%d6wR?t2N$wYm}ExEQ8JSgadJX5AyeSkEh(c) z!TUgB^erX)N~^s(@glmbz|uij)8qtj2%edxJ17haiJ}iuLkTIw&N};hOJc}e0ov2U zryv)8`RJ=(ec8#|ydX!dGIOP_`eE_7TCavJ(=zc6Y?%urVuPEPX)L^ zgo7QXABWjj9eZk@eYy8l_p4suKD_}?yPjEBcjoO&byZ$p6*~I?6DY%A?bX$q5aFj8 zCun2&!lNU}z0%`GI$t%dIgTu9mj|xPrh4d>U5QA@IBQwtZOBc((vYx>2 zV0&ooN5zpBuSXudrUmSM^<~GNa`#uzh<;K`dQ-3{ZG|`KMq#vE$S6%sdAs zu`3a5pHL#d=g(iRoMNoSgFx2XL)i_7 zki|nfB@Qc0+l#%<%w56zcKyrmdG@kwEnuVvb<89^@sT`DQB2Lr9qL6n;Y`CkoLSCIMZrY@*urB<*>)edJ z=ccSsF5ti`uxN97l4FTV_7<~MaQC|JFLcRCe|i_uyDwD~X98ATJ3apcBq_cGL)wf= zs+pNrOlyVEx1gKwSX@yn-%BCV>Zyx5K%VM9&ZPdwRg+@-r7FSg*ey7zm0~h_!sBol z*>g4KXw(F6V^voYx<#$(Bs!1gOxxY2|LcNztFqmg;7%p0QiZsLJr?*6xjl2dBD3zUKs)8?#!J>%vPyS5Fh zOY6kG9q?DoTtu<4jZTMKQjQ(!Ty9XN;9vI|oJ*uoSw{Fc&0Y?pKbulQ6WVMUa)4p^;ckz0hBeJvaJXmUNS501Cy!_+B>J z@CjdC!W z0&C=CDfKj&83E0Vyt<4KdP`_2TQ_g@gL`BvjPq6&g}9L*jG!wxriq@WfZK?mI8%{v zy53PqXT@{|QjL8xRz9rgy9Q4c6*>zsxKqZ9X|%#nvEXFJE(JhgBiP}&=W{g6D0o$$ zP&|ODrjgzrU;cDyKFy;f@_Ip#r(TFPl`wdj6Cx|0w2?gNu+?MuHlLmBDr_vG!5JOo zyrtN_Qe@_*z@3MEb|&0;ExkB;ACCXz(sUlwp~k`-PCZ2&BVm)aip~EruaO8DYD!J6)wC-Mp)6^GdtU%{Ocg60=P>)ZsO>aPEk2@4=(- zSNei`8pG4CzPkUbFQMI6_;=}U7GdB+&`YApnouZuw|KV5H3iPu#_hl3ahnUU#=XXFrAjXq~h{dU!D_Q)FByV zWcj9(4~a5>T8T9wx`o=+fC|@A}wEeNQ*+C`e;M`|CkFTH$Cj7Tus{|($Sbl z5(F!Fb*@kY<3GyMkP@B@LE;5fOF(4u6$ z;3}m>G%+JcPB3c%)-xr|3q^3kFQCV%!*L+8Lx5*=Rp_F>Dh%|UK)KSb#4BM z3$1cLR!9r924M~6S6ud6uC(Ss(EAem49s%Ff^j&jn5S?UH$dpa0bKx$sdh}4^arWlrzx>W!VPX>4kQ-$%#5NzGAxi@cQU5 zuA|0bt9vvE|899btLwF@BP2(h5741V8jV^#oHw5ZJazBCyxy}d5}}$cB1;{9^nOH{Q6rzmr$nF2XU^_ zPs-4I4jsl{8_XY+D-}}POkMGu?eh1BrgU(B2!I;JB8pu)oG2}2rW{TjQRGP<%Zp-gQ>;`f2g5Id7R!jL?HLpU9Y4F01&!E6jV5_r1_6-$d6wdU5IO zc|7@?WvSu(2ibu?UaZ@IhbOzT1zlro0`#sTx(4jcEBspUKlaz{-s&b)5kR>GQmb>0 zfV90>8)Dp)Z*4CsV6?S8d0L)&p|XbOW{O(OmMyoYEgX}QOAQG$e`4JN;X0t|X?fSv zZapGRfzk@>O;}QPX69M&$|8iL~n0eP{cq&c}n`2`ZYs_MeS!@lnSjjne>z1(^ zr+U7nO!<$8K9gBhuj~vi1T>YBMfuXsiF)d{R9rcAVthW&UvmD9j^O}FQB^`HQJ2r5 zb)~aXP*rJbI~?g$9YR$};PItF+~Hu~+fqnW<@_ktV*P-j%1&gFk?KKeh6pVdF>2)E zsM?6RmyIi>QQ7>B=IY|lV!#+kxU+Bk@GgEU($lihE_eMDLb*AA2qQ$3-4ACOJo-Y< zOlHaVT?SO^cfFP%bAopH!U|9`SN=b9<5Ik6Fb_rC@-krQmo0gldfmK9ypz+FjoYjR+qhH_JIiG6%shS0yzUferkP z`fcguNRKh-8@raXk75d&K@{cDthCK`>Rd6cULeC|l)c&r`5<>WwHDE-Kf*&pUDd>tVTdu-n_E+0qK>Awz5HZvV8ezd_i@SSQ^r05FLrr^U3;6z=5 zpy>yt`f0%hfDmR(F;-*^x94nT^`dY|#CCo1$g47s5g$vpT;%zh18jyp*t*Ku9;QhW zPV>l`vHj2+S@qPonUGlTv2z(@KynCO^p!Y^wEuT$Lt5sIhs@j^o8fXsl&U(vBwaJb z1QL{rWM}P4VWZt|seI^WB%dz3xnY(Cctp;XEirM@2F!~Ou~i(k=qdr^j|+^L;EWM? zcqWOcP9jtXfn~SQ5)Qf}Kw}o?XC~aG)0}|6gtwr@oS>eVncyB7>8~Hqyvu&baLT8^sVI5%wKnx92&`%oNn2tLS8A)8;@s@pCqGbal7?(sbjegWF zmS)lqKBS-qqjyHyFah$F2l*Jf0^EiPPn04oGYaDIGyqH=Ybvr#e4|e?i#HMAxJZ5r zY;oo)1VKK=DW62eMFbK)Zm}X6cr*qByx-xDfpDBo(oDMZsCH=Jq4K~)QcM~3Cy(zj}c350yunH(t5IvP?uLIUCzUad_yJOhYtaw!H9*|f00yIyV9;YLi%v1x)9wW8eHi`lf$uIF2M{Du^DHD3u#j<&XW` zN-=GIf%kNB?bg25%_RK%s~-J(sWV_3F|~cptV2Bt))74~C^HTb>v^M?V{~uN9sIc( z9K<#ZUnfqCs`+S^2stlD!x1cdpk@N10cgo6JE8IvVr({mC(MT83*#uypXu>kbE5gL zv*JttDy(hbqZEyRg2af7a$5dNsi+yttkyg)D7UF*Ez=~35nuehafZHfj za24^P5WKQe4EafcEvb+nVhEiuzZ_4CwBU*^T|r!pHgsx??|UsOVLXgD!+wFeffAtz zsM&}l1b{BH0nUMqsyshEJJKsuUI}L>#X_bNr9YeNtV z6J z?Y`M10zyBzA)kDK|25m$Pki~{m(BpMJLJt?XD@@@g~f&rQ!R{zLJGB#{#1qlP7Q1^ z$pcdz67zK^AJ_jX`F)_{NLmPI)T)69)(eOxLEkJOF^or`KqAvJJhgg)qnUCl+A_qH zg{Vc=BWQyz0S1nniO$%YJ&44kU^xt{;3)nY*KJF{b zcj=FGKvcbe{en=UTn$|Pi)INs#| zn;xAdJiBz7z81$F%_EyU?T(zs=jTEsfN`^Z*k6la>z5`QFG~_OAsahVF(xOjFBpqv z_U{{|N<*6wibv)Bk@D`STHbv{#m%MZc}bM<%W-~iS4(vxKjo|~`Sz9*eZ7n&suXPL zLKX8$(k)zg0#d9fL0o6m-C%n(zRolZh;~an;p59F0J&<1M&+1UF6eE7McN=WMeVaI_wK6EW54&=2p-3B`xRpI(cE~hTV*50-jQ490UiViDPy)BuX zhDIO3r-N`R>(mMx)Jqp0HmGfibNOM%BWia87pf9-q=;a@*?^I48KrFKa?EP3RJo&d zSX6oWE9zeU+%5X97Y%CaI+{WnNI|<*BctYro#ztzX3X*dU`8}Ge1ggQDV~@2@;Qdd zUtc#@<$XR9%jfre8HqdBTV<2SbV;cF#WxpfWjEI?!g1n(-LZB9Vjk?czsjJB8ogWh z7uFa87HwipC+;F1ea?2C&yBt~qRxl2@QtKs!)U@*9u=A;JypG* z8r%2bhjPuI(2}pf)@>vwa>u+rM5@r;Xqseyeq_h2Vv~ytL$6zwDEjSA8v)5GjBsrr zJ(&w6pV-k4sHoVHSQvAHV_4ReqqDTYhxPZ$+9I2iy}S*2ShYbm-TNkNRY^Hr|5%CW z#N4j$+L@+#OrPsOVIvU!vRl)_weH>y>r*Jdv0+63SE=;N!rK=uwie9EUOfl!%U+Mv z-k>$?jI}mVTe3=qtPg!|9kjcpH~h)xj?oA&!fGOb<6%|3-+GVM#c?^Lap#H(%2z&O zCO#b!euk8>1-L$CEf%)RoxG3j1)LJz8_Gq3-7P3jDBFdRO~XBF9u zCH&{LsWnKBX{P2aV@``&11JnR!r4{21zK-wb$oi7MW@hM_u+P4-J;F_cb^y0WT?ND z>%WJ~KSW=d@Kg>}t8JY@@1ux5O%rR@tnI1*RF%3FBxGJ*=qU=ScPrgf`EVXifSr&hajd~^(x9&~o}Xa}d!PPbck zfL1WgXMkFzt-s}ENSzIVe;!Ed_hPO4C)?} z1>N@-hVh_f=p{THkNuj`7=F=9;=Jgn-?!CYUCcgu8x|n0VQ_qx zcch{W(9%`hWXn4`G|PWGTL>!?sZ z6H2xd27|NgRvBLE_b;fEPMG&aCmM*aac{8FUm6{_*;ZfGeDH2s@jv`)OIO#^f@4!; zugNCfWD}Qq<`%MvznEHkl?Qsol6#?{T$Xdmlq#~6i>OE+7moMTM#J37Cbqc3iIJL) z%aNT$^}F+zuCuHim3du^L~4fR!X3d|sLnO|RR+xJF?#w^MWpX6oCt3EW=~aUAFUb9XgL8QTekMXI^*qIos~mn)6uD zxc5=IZ0~AMJ)++#yQ_W3>+bKK?Eq_T@7&HX2{#-DnYLR^&NIY~jSgWJ^4qJV0UC_e zJ7+uGYdRw`7>Ysmi~(;{QiSEl)7Jxa$14$lE#S(lgDMh;&Z^YmU29O8&9-998yg<8 zr?d9L;A&-FLb*JqIs{a8uPd|eS>xW&FK&29=?W7l1tqOKhows*mJiZ_JVun@!>Fl- zjzJXDQ?SW-^F;>L`K@1I@P*d->r-(-dmyzXn3FQcTFwBcF&eng$CGla%Y5P~>hbw3 zr^V?Umq|#WFQPC7*So{KmxCI~kybOJw?3LA@w3YAH{pX>;{ssy%Pb1DnPW4rHV_&E zEox?uXVp$@FVd0PK})63lXJLA+j zwUUd~s?<8C66WSe(Z-;G_ZKD4ZtWE2FNxz6fy9yk!k#Dsm~*d$P*rKt9&=8$$yx(7 zA{)A~~GOyJ-cAoYORfH9uIEhsM1 z7>TMgDBdy~yDLKbC8l)FI$g3^x>dt#P%v@K1(%fLmi7KqAeyB*oB#27G$>MCbXK!V z$+D^b#vqvuBM!ULEK@-lnrPmr3b_++j-Df@g|l42jBBn@B(P~a@NYY-`4@UM;)HE@ z6+(#L*zB$2@?EitU{Q~v-S0a6iN`xm+<1%xkGgEkxg*n1Q}eNKk<^@azlp*+YPo< z`E${l>o^OFSuIxqb1VLd>x+Dgi(xt#u(R(xs0j}#dE+Mx9H$=vi&F2-(wC4v7q87m z<(+-|w|8YPT!gK&L*4_oQ)O-QuIuY987~HsLu_`+CWW~``8o*L%NC8b*YRbf8G_)JpX!n08}W#I7GxF$J&GXmv>inI%g`xA`)0R$4DB%V37i+z`d-8iLmkCfKW zC^nj4<(<GRms?Rsrm)%HM#4wJy-PYp0O_L zF?QH?t}WYL!fw6*6$PJke$`0|yL}#8MF5cuc#1iTqE~?6;|PwyP(>QysP;`|TU1~M znQL;2$;r&?O72$aQRN6gSzev-7SL5;tU@L!FqV$8TS!4@W?Dd#sM%@TGGn{DUJ}Kh z8^O&KqWcN_exTDOck*^`2z&7o>`sf@M1nU&K9 zc1_aQ2bfHiX)(=9-E(mR#wE+kZL=94e{B~Fvm;rZtuAfL!DLu+NZ3w7%F=XIHcHPM zm5S1wzLCKC=T^&=iz$@AVO1?vX$%)1A(Ld9fx#Q!YhPg-4nTO(_$=_5@WNIT|VW-3(nHy zQ37h@Z`fc~fx3XinMln>+5p;0FkUo~s|$Bigs!;(u2%aZ;A{8~IihypDk)bI-d+~D zIERL%SifLoXPW;Fz;y%mOJTd$g!2O6`*p{4qAd^Bqbvq5*G#@TFBlK0lBN;kHO&a~ z$=$+LNf9fno$_q86kx{HId>p%PQXQ3hx~vj%~C*P_?7$0GT^b9gnYqacG(Oq?P##Y zA~eQDz=mX_Dm`Y4prmuW5+r|J4N0F__2ocv#X_vB2Qg_8)obD1QeH(ARD zck`0hz2H1|ttQdkH$Kr_EBLX_F(a)Xg4nhxN-?|qILh-VY1f;}H#R5UN_}iQcU~~% zZ~!LW+BKyo90=*c#d6j@xpeon#UK0TSLM;q%c&2O3Jev#hf8mEP_awP^kBgN&u^2D z&YzF&d;d|rd~{h928YN=o=`CestbV+<IbcNY0#)VENal~w#%c(v5~S1VPcb6n{Wt}Y%jn5WDneZtj@Kw7x~T_-GFZ$E z_6gjsozO4}0T5HhEFSlVy3!}jR%F?b%W}s2*(zhoHK{U+LmJTO`fop_>`>_Y#6@qT zkgG=`Y$oYsm%)LoBEQO|zw4pA`N z=Z7@?vT*g+d-a4X66OhYRH_xT>Odn{HG)+mSS>ABRokt$Bxfx+#tX9h($~4o4vMs@ zyPjnCxkV(cL;-+mEk)gl))R%kz*O*QA&D|a>9AL6?lK9AUV(39JfDgOvr=KLm{4H8 zVX=~a%WMLgcGDAk;^iCx1_k%Lb!a)Z=y>da+sP$RxzxG2=)^o~WDnRx!n-BJo_eVO z^!9PAzW%*dA^_cukq5x++gZ^<@vFvaEY#cCw|{$A*Ms?;&wx3a#@NAk)zgDlYKIaj0VpH4@ECC zhfs*P4n{e=(=KyJWb-5FpTlbh6w-`9vXR1bO1Hd!GR_%}OcD;FVe15w2nF}=1Rd=S zYaZ@)H^_x#pf-3$$stAj|4D{n=?Di(0+6X48$^r=XXyn8ts~Uzgq2Bp5oN6;I*$_F zyT|ynrDUjGwO98?0ENrI#I_D4HxPZPJjx6ksUz^g@km9Khq}ZTo@-2rD=do z$S^=gsyjU8aXQ3};Uoe+8l#d*fSQTdPau(kRM&5TPKq~6&_B~$Dm>i_?qjkOv=TkZ z(v$EcPJoz-@Mz~t+CWd+R<;Rz1QoIf#jFMwn?BysBn!AB=G=-VHRGHtEYTmk0!~P zSuc_@hGghblf=US&c%c?PAH*2&PB2armh+To@P-<$^edN=?N+W1*JfNrOn1u9_%EY z!KuCk7-LS2K>+&?%40;)gwl1$0y=G-wGlG4fbNz-qeHmQeu znRMxy2jvAqNmRz9F0-VFr^%&al@t@GC)w9Zpi0c;bU_qO#Ndr(Cz#9u9i+)O8t8j2 zw+*XW%&BRyjLXu-)C5~7S)W76^gwzFiKxWuPg3e)>sTX;3*WZ|=8qm6OBN!GmI3L399NA=25u1b%!xP` z_ZoP1)rj#p+|46YiBJ&3vaTd;8?7sb__y0e&*dFQUO7D7Jt*t$520X)hiD=dG?b|~@%Fc1~+Bs4|Y*I3+R<5e@8z=dU{ zlSffmm9I8$&j}Zix@UEZvQc;0D{5Rs$Ahr`Yv6l?3G<8(>moz7%mc&W=F3|MF5G0> z=6m{*@8mLglE#$K*twz68$GoQv^w)D$Ydg?rNDvsiwLt1n+ZdGhGHx2)%JIsQuPrM z%Djz00bqg0ARnJaS*E5Li94hUvH&06xPIe?C2lSiXJtf3Ordua(C3H6ye7`0ig!Sl zSP
  • #va9;?sM>IJvP;y^-C;d!!tT7&hCsBe-`svX} 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%0DuVQYw-GHy*lVk+0{#9!UP=W*ARQvVk^9^v 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 literal 16364 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 diff --git a/man/AddPeriodStoxBiotic.Rd b/man/AddPeriodStoxBiotic.Rd index 7c0e8689..83c0bf0f 100644 --- a/man/AddPeriodStoxBiotic.Rd +++ b/man/AddPeriodStoxBiotic.Rd @@ -15,7 +15,7 @@ AddPeriodStoxBiotic( \item{TemporalDefinition}{\code{\link[RstoxFDA]{TemporalDefinition}} definition of temporal category.} -\item{ColumnName}{specifies which column the area should be added to. Defaults to Period.} +\item{ColumnName}{specifies which column the area should be added to. Defaults to \verb{r RstoxFDA::stoxFunctionAttributes$AddPeriodStoxBiotic$functionParameterDefaults$ColumnName}.} } \value{ StoxBioticData with column appended. See \code{\link[RstoxData]{StoxBioticData}}. diff --git a/man/AddPeriodStoxLanding.Rd b/man/AddPeriodStoxLanding.Rd index ce1893af..d7a105e4 100644 --- a/man/AddPeriodStoxLanding.Rd +++ b/man/AddPeriodStoxLanding.Rd @@ -15,7 +15,7 @@ AddPeriodStoxLanding( \item{TemporalDefinition}{\code{\link[RstoxFDA]{TemporalDefinition}} definition of temporal category.} -\item{ColumnName}{Name of the added column. Defaults to Period.} +\item{ColumnName}{Name of the added column. Defaults to \verb{r RstoxFDA::stoxFunctionAttributes$AddPeriodStoxLanding$functionParameterDefaults$ColumnName}.} } \value{ StoxLandingData with column appended. See \code{\link[RstoxData]{StoxLandingData}}. diff --git a/man/AddStratumStoxBiotic.Rd b/man/AddStratumStoxBiotic.Rd index 38e64b61..3a3e3cfc 100644 --- a/man/AddStratumStoxBiotic.Rd +++ b/man/AddStratumStoxBiotic.Rd @@ -11,7 +11,7 @@ AddStratumStoxBiotic(StoxBioticData, StratumPolygon, ColumnName = character()) \item{StratumPolygon}{Definition of spatial strata. See \code{\link[RstoxBase]{StratumPolygon}}} -\item{ColumnName}{specifies which column the area should be added to. Defaults to Stratum.} +\item{ColumnName}{specifies which column the area should be added to. Defaults to \verb{r RstoxFDA::stoxFunctionAttributes$AddStratumStoxBiotic$functionParameterDefaults$ColumnName}.} } \value{ StoxBioticData with column appended to data.table 'Station'. See \code{\link[RstoxData]{StoxBioticData}}. diff --git a/man/AddStratumStoxLanding.Rd b/man/AddStratumStoxLanding.Rd index 6d39662b..7e56432d 100644 --- a/man/AddStratumStoxLanding.Rd +++ b/man/AddStratumStoxLanding.Rd @@ -15,7 +15,7 @@ AddStratumStoxLanding( \item{StratumPolygon}{Definition of spatial strata. See \code{\link[RstoxBase]{StratumPolygon}}} -\item{ColumnName}{specifies which column the area should be added to. See details. Defaults to Stratum.} +\item{ColumnName}{specifies which column the area should be added to. See details. Defaults to \verb{r RstoxFDA::stoxFunctionAttributes$AddStratumStoxLanding$functionParameterDefaults$ColumnName}.} } \value{ StoxLandingData with column appended. See \code{\link[RstoxData]{StoxLandingData}}. diff --git a/man/ParameterizeRecaModels.Rd b/man/ParameterizeRecaModels.Rd index 08661aac..0c34ffd2 100644 --- a/man/ParameterizeRecaModels.Rd +++ b/man/ParameterizeRecaModels.Rd @@ -23,13 +23,13 @@ ParameterizeRecaModels( \item{Burnin}{number of MCMC samples run and discarded by \code{\link[Reca]{eca.estimate}} before any samples are saved. See documentation for \code{\link[Reca]{eca.estimate}}.} -\item{Thin}{controls how many iterations are run between each samples saved. Defaults to 0. This may be set to account for autocorrelation introduced by Metropolis-Hastings simulation. see documentation for \code{\link[Reca]{eca.estimate}}} +\item{Thin}{controls how many iterations are run between each samples saved. Defaults to \verb{r RstoxFDA::stoxFunctionAttributes$ParameterizeRecaModels$functionParameterDefaults$Thin}. This may be set to account for autocorrelation introduced by Metropolis-Hastings simulation. see documentation for \code{\link[Reca]{eca.estimate}}} \item{ResultDirectory}{a directory where Reca may store temp-files \code{\link[Reca]{eca.estimate}} and \code{\link[Reca]{eca.predict}}. See details.} -\item{Lgamodel}{The length age relationship to use for length-age fits (options: "log-linear", "non-linear": Schnute-Richards model). See documentation for \code{\link[Reca]{eca.estimate}}. Defaults to log-linear} +\item{Lgamodel}{The length age relationship to use for length-age fits (options: "log-linear", "non-linear": Schnute-Richards model). See documentation for \code{\link[Reca]{eca.estimate}}. Defaults to \verb{r RstoxFDA::stoxFunctionAttributes$ParameterizeRecaModels$functionParameterDefaults$Lgamodel}} -\item{Delta.age}{see documentation for \code{\link[Reca]{eca.estimate}}. Defaults to 0.001.} +\item{Delta.age}{see documentation for \code{\link[Reca]{eca.estimate}}. Defaults to \verb{r RstoxFDA::stoxFunctionAttributes$ParameterizeRecaModels$functionParameterDefaults$Delta.age}.} \item{Seed}{see documentation for \code{\link[Reca]{eca.estimate}}. Defaults to random seed.} diff --git a/man/PlotPosteriorTraces.Rd b/man/PlotPosteriorTraces.Rd index 5d3fbeb8..826e96ba 100644 --- a/man/PlotPosteriorTraces.Rd +++ b/man/PlotPosteriorTraces.Rd @@ -22,7 +22,7 @@ PlotPosteriorTraces( \arguments{ \item{RecaCatchAtAge}{Results from MCMC simulations (\code{\link[RstoxFDA]{RecaCatchAtAge}}).} -\item{Parameter}{which parameter plot traceplots for "TotalCatch", "MeanLength", or "MeanWeight", Defaults to} +\item{Parameter}{which parameter plot traceplots for "TotalCatch", "MeanLength", or "MeanWeight", Defaults to \verb{r RstoxFDA::stoxFunctionAttributes$PlotPosteriorTraces$functionParameterDefaults$TotalCatch}} \item{PlusGroup}{If given, ages 'PlusGroup' or older are included in a plus group.} @@ -30,17 +30,17 @@ PlotPosteriorTraces( \item{UseDefaultPlotSettings}{if TRUE default plot settings are used, rather than the values provided by Nclust, Iter.max, Nstart, LowerQuant, UpperQuant, CatLimit, and Legend} -\item{Nclust}{the number of plots to distribute the ages and plus group on. Defaults to 4.} +\item{Nclust}{the number of plots to distribute the ages and plus group on. Defaults to \verb{r RstoxFDA::stoxFunctionAttributes$PlotPosteriorTraces$functionParameterDefaults$Nclust}.} -\item{Iter.max}{maximal number of iterations for k-means clustering deciding which ages are plotted in same plot. Defaults to 20.} +\item{Iter.max}{maximal number of iterations for k-means clustering deciding which ages are plotted in same plot. Defaults to \verb{r RstoxFDA::stoxFunctionAttributes$PlotPosteriorTraces$functionParameterDefaults$Iter.max}.} -\item{Nstart}{the number of random sets chosen for the k-means clustering. Defaults to 10.} +\item{Nstart}{the number of random sets chosen for the k-means clustering. Defaults to \verb{r RstoxFDA::stoxFunctionAttributes$PlotPosteriorTraces$functionParameterDefaults$Nstart}.} -\item{LowerQuant}{lower quantile in each age group to plot as points. Defaults to .} +\item{LowerQuant}{lower quantile in each age group to plot as points. Defaults to \verb{r RstoxFDA::stoxFunctionAttributes$PlotPosteriorTraces$functionParameterDefaults$LowerLuant}.} -\item{UpperQuant}{upper quantile in each age group to plot as points. Defaults to 0.95.} +\item{UpperQuant}{upper quantile in each age group to plot as points. Defaults to \verb{r RstoxFDA::stoxFunctionAttributes$PlotPosteriorTraces$functionParameterDefaults$UpperQuant}.} -\item{CatLimit}{the upper limit for number of ages in a plot using categorical coloring. Plots with more than this number of age greoups will use a gradient coloring scheme. Defaults to 30.} +\item{CatLimit}{the upper limit for number of ages in a plot using categorical coloring. Plots with more than this number of age greoups will use a gradient coloring scheme. Defaults to \verb{r RstoxFDA::stoxFunctionAttributes$PlotPosteriorTraces$functionParameterDefaults$CatLimit}.} \item{Legend}{If true legend will be plotted.} } diff --git a/man/PlotSamplingCoverage.Rd b/man/PlotSamplingCoverage.Rd index 5d1ce7e8..a58f7885 100644 --- a/man/PlotSamplingCoverage.Rd +++ b/man/PlotSamplingCoverage.Rd @@ -32,9 +32,9 @@ PlotSamplingCoverage( \item{OtherPercentage}{Controls how many bars are shown. The smallest 'OtherPercentage' \% bars are combined into one bar.} -\item{ColorScheme}{'CellPlot' or 'Gradient'. See details. Defaults to CellPlot.} +\item{ColorScheme}{'CellPlot' or 'Gradient'. See details. Defaults to \verb{r RstoxFDA::stoxFunctionAttributes$PlotSamplingCoverage$functionParameterDefaults$ColorScheme}.} -\item{Measurement}{The kind of fish measurement that should be used to determine the color of a cell. Defaults to AgeReadings.} +\item{Measurement}{The kind of fish measurement that should be used to determine the color of a cell. Defaults to \verb{r RstoxFDA::stoxFunctionAttributes$PlotSamplingCoverage$functionParameterDefaults$Measurement}.} \item{UseDefaultColorSettings}{Logical, whether to use default color settings or the values specified in other arguments to this function.} @@ -44,23 +44,23 @@ PlotSamplingCoverage( \item{MinMeasurements}{color scheme "CellPlot". The minimum number of measurements (parameter 'Measurement') for quality "Good", "Few vessels" or "Few catches" coloring of a cell. Defaults to 100.} -\item{ColorNoSamples}{Color to use for cells not sampled. Defaults to #ffffcc.} +\item{ColorNoSamples}{Color to use for cells not sampled. Defaults to \verb{r RstoxFDA::stoxFunctionAttributes$PlotSamplingCoverage$functionParameterDefaults$ColorNoSamples}.} -\item{ColorFewMeasurements}{Color to use for cells with few measurements. Defaults to #c2e699.} +\item{ColorFewMeasurements}{Color to use for cells with few measurements. Defaults to \verb{r RstoxFDA::stoxFunctionAttributes$PlotSamplingCoverage$functionParameterDefaults$ColorFewMeasurements}.} -\item{ColorFewCatches}{Color to use for cells with Few Catches. See details. Defaults to #78c679.} +\item{ColorFewCatches}{Color to use for cells with Few Catches. See details. Defaults to \verb{r RstoxFDA::stoxFunctionAttributes$PlotSamplingCoverage$functionParameterDefaults$ColorFewCatches}.} -\item{ColorFewVessels}{Color to use for cells with Few Vessels See details. Defaults to #31a354.} +\item{ColorFewVessels}{Color to use for cells with Few Vessels See details. Defaults to \verb{r RstoxFDA::stoxFunctionAttributes$PlotSamplingCoverage$functionParameterDefaults$ColorFewVessels}.} -\item{ColorGoodSampling}{Color to use for cells with Good sampling. See details. Defaults to #006837.} +\item{ColorGoodSampling}{Color to use for cells with Good sampling. See details. Defaults to \verb{r RstoxFDA::stoxFunctionAttributes$PlotSamplingCoverage$functionParameterDefaults$ColorGoodSampling}.} \item{SamplingUnit}{color scheme "Gradient". The sampling unit used: "Vessels","Catches", or "Measurement"} -\item{GradientLowColor}{Color to use for low end of color gradient. See details. Defaults to #ffffcc.} +\item{GradientLowColor}{Color to use for low end of color gradient. See details. Defaults to \verb{r RstoxFDA::stoxFunctionAttributes$PlotSamplingCoverage$functionParameterDefaults$GradientLowColor}.} -\item{GradientMidColor}{Color to use for middle of color gradient. See details. Defaults to #c2e699.} +\item{GradientMidColor}{Color to use for middle of color gradient. See details. Defaults to \verb{r RstoxFDA::stoxFunctionAttributes$PlotSamplingCoverage$functionParameterDefaults$GradientMidColor}.} -\item{GradientHighColor}{Color to use for high end of color gradient. See details. Defaults to #006837.} +\item{GradientHighColor}{Color to use for high end of color gradient. See details. Defaults to \verb{r RstoxFDA::stoxFunctionAttributes$PlotSamplingCoverage$functionParameterDefaults$GradientHighColor}.} } \value{ \code{\link[RstoxFDA]{PlotSamplingCoverageData}} diff --git a/man/PlotSamplingOverviewCell.Rd b/man/PlotSamplingOverviewCell.Rd index 8c01ecc7..39600dfa 100644 --- a/man/PlotSamplingOverviewCell.Rd +++ b/man/PlotSamplingOverviewCell.Rd @@ -25,25 +25,25 @@ PlotSamplingOverviewCell( \item{ColumnVariable}{The grouping variable in 'ReportFdaSamplingData' that should be used for columns in the cell plot} -\item{Measurement}{The kind of fish measurement that should be used to determine the color of a cell. Defaults to AgeReadings.} +\item{Measurement}{The kind of fish measurement that should be used to determine the color of a cell. Defaults to \verb{r RstoxFDA::stoxFunctionAttributes$PlotSamplingOverviewCell$functionParameterDefaults$Measurement}.} \item{UseDefaultColorSettings}{Logical, whether to use default color settings or the value specified for the function parameters MinVessels, MinCatches, MinMeasurements, ColorNoSamples, ColorFewCatches, ColorFewVessels, ColorGoodSampling} -\item{MinVessels}{The minimum number of vessels sampled for a quality "Good" coloring of a cell. Defaults to 2.} +\item{MinVessels}{The minimum number of vessels sampled for a quality "Good" coloring of a cell. Defaults to \verb{r RstoxFDA::stoxFunctionAttributes$PlotSamplingOverviewCell$functionParameterDefaults$MinVessels}.} -\item{MinCatches}{The minimum number of catches sampled for quality "Good" or "Few vessels" coloring of a cell. Defaults to 2.} +\item{MinCatches}{The minimum number of catches sampled for quality "Good" or "Few vessels" coloring of a cell. Defaults to \verb{r RstoxFDA::stoxFunctionAttributes$PlotSamplingOverviewCell$functionParameterDefaults$MinCatches}.} -\item{MinMeasurements}{The minimum number of measurements (parameter 'Measurement') for quality "Good", "Few vessels" or "Few catches" coloring of a cell. Defaults to 100.} +\item{MinMeasurements}{The minimum number of measurements (parameter 'Measurement') for quality "Good", "Few vessels" or "Few catches" coloring of a cell. Defaults to \verb{r RstoxFDA::stoxFunctionAttributes$PlotSamplingOverviewCell$functionParameterDefaults$MinMeasurements}.} -\item{ColorNoSamples}{Color to use for cells not sampled. Defaults to #ffffcc.} +\item{ColorNoSamples}{Color to use for cells not sampled. Defaults to \verb{r RstoxFDA::stoxFunctionAttributes$PlotSamplingOverviewCell$functionParameterDefaults$ColorNoSamples}.} -\item{ColorFewMeasurements}{Color to use for cells with few measurements. Defaults to #c2e699.} +\item{ColorFewMeasurements}{Color to use for cells with few measurements. Defaults to \verb{r RstoxFDA::stoxFunctionAttributes$PlotSamplingOverviewCell$functionParameterDefaults$ColorFewMeasurements}.} -\item{ColorFewCatches}{Color to use for cells with Few Catches. See details. Defaults to #78c679.} +\item{ColorFewCatches}{Color to use for cells with Few Catches. See details. Defaults to \verb{r RstoxFDA::stoxFunctionAttributes$PlotSamplingOverviewCell$functionParameterDefaults$ColorFewCatches}.} -\item{ColorFewVessels}{Color to use for cells with Few Vessels See details. Defaults to #31a354.} +\item{ColorFewVessels}{Color to use for cells with Few Vessels See details. Defaults to \verb{r RstoxFDA::stoxFunctionAttributes$PlotSamplingOverviewCell$functionParameterDefaults$ColorFewVessels}.} -\item{ColorGoodSampling}{Color to use for cells with Good sampling. See details. Defaults to #006837.} +\item{ColorGoodSampling}{Color to use for cells with Good sampling. See details. Defaults to \verb{r RstoxFDA::stoxFunctionAttributes$PlotSamplingOverviewCell$functionParameterDefaults$ColorGoodSampling}.} \item{TextSize}{size of text in cellplot. If not provided, a suitable size will be calculated.} } diff --git a/man/PrepareRecaEstimate.Rd b/man/PrepareRecaEstimate.Rd index bd229933..dd226510 100644 --- a/man/PrepareRecaEstimate.Rd +++ b/man/PrepareRecaEstimate.Rd @@ -55,7 +55,7 @@ mandatory if UseAgingError is TRUE.} \item{StockSplittingParameters}{Parameters for stock splitting. Mandatory if 'UseStockSplitting' is TRUE. May be obtained with \code{\link[RstoxFDA]{DefineStockSplittingParameters}}.} -\item{CellEffect}{Configures the cell effect. Defaults to Off. If 'All', an interaction term will be added with all covariates that in the cell (whether they are fixed or random effects). +\item{CellEffect}{Configures the cell effect. Defaults to \verb{r RstoxFDA::stoxFunctionAttributes$PrepareRecaEstimate$functionParameterDefaults$CellEffect}. If 'All', an interaction term will be added with all covariates that in the cell (whether they are fixed or random effects). Any CAR-effect is always included in the cell effect.} \item{MinAge}{optional, must match dimensions of any 'AgeErrorMatrix'. @@ -70,7 +70,7 @@ If not provided it will be derived from data.} \item{LengthResolution}{optional, resolution for length measurements in cm. If not provided modal value from data is used.} -\item{HatchDay}{defaults to Defaults to 1. +\item{HatchDay}{defaults to Defaults to \verb{r RstoxFDA::stoxFunctionAttributes$PrepareRecaEstimate$functionParameterDefaults$HatchDay}. encoding the day of the year when fish is consider to transition from one age to the next. 1 represents Jan 1st.} } \value{ diff --git a/man/ReportFdaLandings.Rd b/man/ReportFdaLandings.Rd index a1793be3..32837b98 100644 --- a/man/ReportFdaLandings.Rd +++ b/man/ReportFdaLandings.Rd @@ -17,9 +17,9 @@ and approriate columns added for identifying corresponding samples} \item{GroupingVariables}{Columns of 'StoxBioticData' and 'StoxLandingData' that partitions the fisheries. If not provided, a single row for all landings will be produced.} -\item{Decimals}{integer specifying the number of decimals to report for 'LandedRoundWeight' and 'WeightOfSampledCatches'. Defaults to 0.} +\item{Decimals}{integer specifying the number of decimals to report for 'LandedRoundWeight' and 'WeightOfSampledCatches'. Defaults to \verb{r RstoxFDA::stoxFunctionAttributes$ReportFdaLandings$functionParameterDefaults$Decimals}.} -\item{Unit}{unit for the weights 'LandedRoundWeight' and 'WeightOfSampledCatches'. Defaults to kg.} +\item{Unit}{unit for the weights 'LandedRoundWeight' and 'WeightOfSampledCatches'. Defaults to \verb{r RstoxFDA::stoxFunctionAttributes$ReportFdaLandings$functionParameterDefaults$Unit}.} } \value{ \code{\link[RstoxFDA]{ReportFdaLandingData}} diff --git a/man/ReportFdaSOP.Rd b/man/ReportFdaSOP.Rd index 077d3a67..0a235f0f 100644 --- a/man/ReportFdaSOP.Rd +++ b/man/ReportFdaSOP.Rd @@ -23,9 +23,9 @@ ReportFdaSOP( \item{GroupingVariables}{Columns of 'StoxLandingData' that partitions the landings into groups SOP tests should be reported for.} -\item{DecimalWeight}{integer specifying the number of decimals to report for weights: 'TotalWeightEstimated', 'LandedWeight', and 'Difference'. Defaults to `r RstoxFDA:::stoxFunctionAttributes$ReportFdaSOP$functionParameterDefaults$DecimalWeight`.} +\item{DecimalWeight}{integer specifying the number of decimals to report for weights: 'TotalWeightEstimated', 'LandedWeight', and 'Difference'. Defaults to `r RstoxFDA::stoxFunctionAttributes$ReportFdaSOP$functionParameterDefaults$DecimalWeight`.} -\item{DecimalFraction}{integer specifying the number of decimals to report for 'RelativeDifference'. Defaults to `r RstoxFDA:::stoxFunctionAttributes$ReportFdaSOP$functionParameterDefaults$DecimalFraction`.} +\item{DecimalFraction}{integer specifying the number of decimals to report for 'RelativeDifference'. Defaults to `r RstoxFDA::stoxFunctionAttributes$ReportFdaSOP$functionParameterDefaults$DecimalFraction`.} \item{UnitFraction}{unit for the RelativeDifference. E.g. '0.' for decimal notation or '\%' for percent.} } diff --git a/man/ReportFdaSampling.Rd b/man/ReportFdaSampling.Rd index 2425964a..4b3f6ef6 100644 --- a/man/ReportFdaSampling.Rd +++ b/man/ReportFdaSampling.Rd @@ -22,9 +22,9 @@ and approriate columns added for identifying corresponding samples} \item{GroupingVariables}{Columns of 'StoxBioticData' and 'StoxLandingData' that partitions the fisheries. If not provided, a single row for all landings will be produced.} -\item{Decimals}{integer specifying the number of decimals to report for 'LandedRoundWeight' and 'WeightOfSampledCatches'. Defaults to 0.} +\item{Decimals}{integer specifying the number of decimals to report for 'LandedRoundWeight' and 'WeightOfSampledCatches'. Defaults to \verb{r RstoxFDA::stoxFunctionAttributes$ReportFdaSampling$functionParameterDefaults$Decimals}.} -\item{Unit}{unit for the weights 'LandedRoundWeight' and 'WeightOfSampledCatches'. Defaults to kg} +\item{Unit}{unit for the weights 'LandedRoundWeight' and 'WeightOfSampledCatches'. Defaults to \verb{r RstoxFDA::stoxFunctionAttributes$ReportFdaSampling$functionParameterDefaults$Unit}} \item{SamplingVariables}{Columns of 'StoxBioticData' identifying sampling variables to be use to partition the report. See details.} } diff --git a/man/ReportParameterConvergence.Rd b/man/ReportParameterConvergence.Rd index 9809fd3e..b3abfd8a 100644 --- a/man/ReportParameterConvergence.Rd +++ b/man/ReportParameterConvergence.Rd @@ -13,9 +13,9 @@ ReportParameterConvergence( \arguments{ \item{ParameterizationSummaryData}{summary statistics for Reca parameters} -\item{Tolerance}{threshold for reporting parameters. Defaults to 0.1. See details} +\item{Tolerance}{threshold for reporting parameters. Defaults to \verb{r RstoxFDA::stoxFunctionAttributes$ReportParameterConvergence$functionParameterDefaults$Tolerance}. See details} -\item{Decimals}{integer specifying the number of decimals to report for 'GelmanRubinR'. Defaults to 2.} +\item{Decimals}{integer specifying the number of decimals to report for 'GelmanRubinR'. Defaults to \verb{r RstoxFDA::stoxFunctionAttributes$ReportParameterConvergence$functionParameterDefaults$Decimals}.} } \value{ \code{\link[RstoxFDA]{ParameterConvergenceData}} diff --git a/man/ReportRecaCatchAtAge.Rd b/man/ReportRecaCatchAtAge.Rd index 87c86bb1..fb878560 100644 --- a/man/ReportRecaCatchAtAge.Rd +++ b/man/ReportRecaCatchAtAge.Rd @@ -17,9 +17,9 @@ ReportRecaCatchAtAge( \item{PlusGroup}{If given, ages 'PlusGroup' or older are included in a plus group.} -\item{IntervalWidth}{The width of the reported credible interval. A value of 0.9 gives 90 per cent credible intervals. Defaults to 0.9} +\item{IntervalWidth}{The width of the reported credible interval. A value of 0.9 gives 90 per cent credible intervals. Defaults to \verb{r RstoxFDA::stoxFunctionAttributes$ReportRecaCatchAtAge$functionParameterDefaults$IntervalWidth}} -\item{Decimals}{integer specifying the number of decimals to report for 'CatchAtAge', 'SD', 'Low' and 'High'. Defaults to 0.} +\item{Decimals}{integer specifying the number of decimals to report for 'CatchAtAge', 'SD', 'Low' and 'High'. Defaults to \verb{r RstoxFDA::stoxFunctionAttributes$ReportRecaCatchAtAge$functionParameterDefaults$Decimals}.} \item{Unit}{unit for 'CatchAtAge', 'SD', 'Low' and 'High'} } diff --git a/man/ReportRecaCatchAtAgeCovariance.Rd b/man/ReportRecaCatchAtAgeCovariance.Rd index 3a7283c7..6936132b 100644 --- a/man/ReportRecaCatchAtAgeCovariance.Rd +++ b/man/ReportRecaCatchAtAgeCovariance.Rd @@ -16,7 +16,7 @@ ReportRecaCatchAtAgeCovariance( \item{PlusGroup}{If given, ages 'PlusGroup' or older are included in a plus group.} -\item{Decimals}{integer specifying the number of decimals to report for 'Covariance'. Defaults to 0.} +\item{Decimals}{integer specifying the number of decimals to report for 'Covariance'. Defaults to \verb{r RstoxFDA::stoxFunctionAttributes$ReportRecaCatchAtAgeCovariance$functionParameterDefaults$Decimals}.} \item{Unit}{unit for 'CatchAtAge'. Covariance will be provided as the square of this unit.} } diff --git a/man/ReportRecaCatchAtLength.Rd b/man/ReportRecaCatchAtLength.Rd index 801c844b..b388940c 100644 --- a/man/ReportRecaCatchAtLength.Rd +++ b/man/ReportRecaCatchAtLength.Rd @@ -15,9 +15,9 @@ ReportRecaCatchAtLength( \arguments{ \item{RecaCatchAtAge}{Results from MCMC simulations (\code{\link[RstoxFDA]{RecaCatchAtAge}}).} -\item{IntervalWidth}{The width of the reported credible interval. A value of 0.9 gives 90 per cent credible intervals. Defaults to 0.9.} +\item{IntervalWidth}{The width of the reported credible interval. A value of 0.9 gives 90 per cent credible intervals. Defaults to \verb{r RstoxFDA::stoxFunctionAttributes$ReportRecaCatchAtLength$functionParameterDefaults$IntervalWidth}.} -\item{Decimals}{integer specifying the number of decimals to report for 'CatchAtLength', 'SD', 'Low' and 'High'. Defaults to 0.} +\item{Decimals}{integer specifying the number of decimals to report for 'CatchAtLength', 'SD', 'Low' and 'High'. Defaults to \verb{r RstoxFDA::stoxFunctionAttributes$ReportRecaCatchAtLength$functionParameterDefaults$Decimals}.} \item{Unit}{unit for 'CatchAtLength', 'SD', 'Low' and 'High'} diff --git a/man/ReportRecaCatchStatistics.Rd b/man/ReportRecaCatchStatistics.Rd index fb5a9070..9fff0a94 100644 --- a/man/ReportRecaCatchStatistics.Rd +++ b/man/ReportRecaCatchStatistics.Rd @@ -24,29 +24,29 @@ ReportRecaCatchStatistics( \arguments{ \item{RecaCatchAtAge}{Results from MCMC simulations (\code{\link[RstoxFDA]{RecaCatchAtAge}}).} -\item{IntervalWidth}{The width of the reported credible interval. A value to 0.9 gives 90 per cent credible intervals. Defaults to 0.9.} +\item{IntervalWidth}{The width of the reported credible interval. A value to 0.9 gives 90 per cent credible intervals. Defaults to \verb{r RstoxFDA::stoxFunctionAttributes$ReportRecaCatchStatistics$functionParameterDefaults$IntervalWidth}.} \item{UseDefaultDecimalOptions}{logical determining whether to use default decimal options.} -\item{DecimalTotalNumber}{integer specifying the number of decimals to report for 'TotalNumber', and the corresponding 'SD', 'Low' and 'High'. Defaults to 0.} +\item{DecimalTotalNumber}{integer specifying the number of decimals to report for 'TotalNumber', and the corresponding 'SD', 'Low' and 'High'. Defaults to \verb{r RstoxFDA::stoxFunctionAttributes$ReportRecaCatchStatistics$functionParameterDefaults$DecimalTotalNumber}.} -\item{DecimalTotalWeight}{integer specifying the number of decimals to report for 'TotalWeightDefaults', and the corresponding 'SD', 'Low' and 'High'. Defaults to 0.} +\item{DecimalTotalWeight}{integer specifying the number of decimals to report for 'TotalWeightDefaults', and the corresponding 'SD', 'Low' and 'High'. Defaults to \verb{r RstoxFDA::stoxFunctionAttributes$ReportRecaCatchStatistics$functionParameterDefaults$DecimalTotalWeight}.} -\item{DecimalMeanAge}{integer specifying the number of decimals to report for 'MeanIndividualAge', and the corresponding 'SD', 'Low' and 'High'. 1.} +\item{DecimalMeanAge}{integer specifying the number of decimals to report for 'MeanIndividualAge', and the corresponding 'SD', 'Low' and 'High'. \verb{r RstoxFDA::stoxFunctionAttributes$ReportRecaCatchStatistics$functionParameterDefaults$DecimalMeanAge}.} -\item{DecimalMeanWeight}{integer specifying the number of decimals to report for 'MeanIndividualWeight', and the corresponding 'SD', 'Low' and 'High'. 3.} +\item{DecimalMeanWeight}{integer specifying the number of decimals to report for 'MeanIndividualWeight', and the corresponding 'SD', 'Low' and 'High'. \verb{r RstoxFDA::stoxFunctionAttributes$ReportRecaCatchStatistics$functionParameterDefaults$DecimalMeanWeight}.} -\item{DecimalMeanLength}{integer specifying the number of decimals to report for 'MeanIndividualLength', and the corresponding 'SD', 'Low' and 'High'.3.} +\item{DecimalMeanLength}{integer specifying the number of decimals to report for 'MeanIndividualLength', and the corresponding 'SD', 'Low' and 'High'.\verb{r RstoxFDA::stoxFunctionAttributes$ReportRecaCatchStatistics$functionParameterDefaults$DecimalMeanLength}.} \item{UseDefaultUnitOptions}{logical determining whether to use default unit options.} -\item{UnitTotalNumber}{unit for total catch in numbers. 10^6 individuals.} +\item{UnitTotalNumber}{unit for total catch in numbers. \verb{r RstoxFDA::stoxFunctionAttributes$ReportRecaCatchStatistics$functionParameterDefaults$UnitTotalNumber}.} -\item{UnitTotalWeight}{unit for weight of total catch. kiloton.} +\item{UnitTotalWeight}{unit for weight of total catch. \verb{r RstoxFDA::stoxFunctionAttributes$ReportRecaCatchStatistics$functionParameterDefaults$UnitTotalWeight}.} -\item{UnitMeanWeight}{unit for mean weight. kg.} +\item{UnitMeanWeight}{unit for mean weight. \verb{r RstoxFDA::stoxFunctionAttributes$ReportRecaCatchStatistics$functionParameterDefaults$UnitMeanWeight}.} -\item{UnitMeanLength}{unit for mean length. cm.} +\item{UnitMeanLength}{unit for mean length. \verb{r RstoxFDA::stoxFunctionAttributes$ReportRecaCatchStatistics$functionParameterDefaults$UnitMeanLength}.} } \value{ \code{\link[RstoxFDA]{ReportFdaSummaryData}} diff --git a/man/RunRecaModels.Rd b/man/RunRecaModels.Rd index 22989c8c..34771ca7 100644 --- a/man/RunRecaModels.Rd +++ b/man/RunRecaModels.Rd @@ -20,11 +20,11 @@ RunRecaModels( \item{GroupingVariables}{character vector identifying columns in 'StoxLandingData' that results should be provided for.} -\item{TemporalResolution}{Code for temporal resolution in landings: "Month" or "Quarter". Defaults to Quarter. +\item{TemporalResolution}{Code for temporal resolution in landings: "Month" or "Quarter". Defaults to \verb{r RstoxFDA::stoxFunctionAttributes$RunRecaModels$functionParameterDefaults$TemporalResolution}. Regulates temporal resolution for calculating fractional ages of fish. Not to be confused with any temporal covariate.} -\item{Caa.burnin}{see documentation for \code{\link[Reca]{eca.predict}}. Defaults to 0.} +\item{Caa.burnin}{see documentation for \code{\link[Reca]{eca.predict}}. Defaults to \verb{r RstoxFDA::stoxFunctionAttributes$RunRecaModels$functionParameterDefaults$Caa.burnin}.} \item{CollapseLength}{indicates whether length groups should be collapsed in result. Defaults to TRUE. See details.} } diff --git a/man/SetShortGearBiotic.Rd b/man/SetShortGearBiotic.Rd index 74e343c0..d9523367 100644 --- a/man/SetShortGearBiotic.Rd +++ b/man/SetShortGearBiotic.Rd @@ -26,7 +26,7 @@ Set the column 'gear' on the table 'fishstation' in \code{\link[RstoxData]{Bioti For bioticdata that does not conform to this, no modifications are done. } \seealso{ -\code{\link{RstoxData}{RstoxData::StoxBiotic}} For converting \code{\link[RstoxData]{BioticData}} to \code{\link[RstoxData]{StoxBioticData}}. +\code{\link[RstoxData]{StoxBiotic}} For converting \code{\link[RstoxData]{BioticData}} to \code{\link[RstoxData]{StoxBioticData}}. } \concept{StoX-functions} \concept{gear coding functions} diff --git a/vignettes/StoX-data-preparation.Rmd b/vignettes/StoX-data-preparation.Rmd index f5d9aadc..55dc63dc 100644 --- a/vignettes/StoX-data-preparation.Rmd +++ b/vignettes/StoX-data-preparation.Rmd @@ -43,7 +43,7 @@ As StoX is composed of several R-packages. Functions will be referred to by thei ## Obtaining data While this vignette introduces some tools to assist correct usage of FDA-data, no attempt is made at introducing unfamiliar users to the peculiarities of fisheries dependent sampling. For IMR samples a provisional guide to FDA-data (in Norwegian) can be found at the [IMR intranet: Kilder fiskeriavhengige data](https://havforskningsinstituttet.sharepoint.com/sites/Fiskeridynamikk/Delte%20dokumenter/Forms/AllItems.aspx?id=%2Fsites%2FFiskeridynamikk%2FDelte%20dokumenter%2FKilder%20%E2%80%93%20fiskeriavhengige%20data%2Epdf&parent=%2Fsites%2FFiskeridynamikk%2FDelte%20dokumenter), and for census data some introduction (in Norwegian) can be found at the [IMR intranet: Fiskeridata](https://havforskningsinstituttet.sharepoint.com/sites/Forskningsdata/SitePages/Fiskeridata.aspx) -Within the IMR-computer-network both landing data and sample data can be obtained from the [dataset explorer](https://datasetexplorer.hi.no/apps/datasetexplorer/v2/navigation). Consider using the tools-menu to download landing data and to compile sample data, if the pre-compiled data sets under 'commercial sampling' are not suitable. Otherwise landing data is available in various formats as described at the [IMR intranet: Fiskeridata](https://havforskningsinstituttet.sharepoint.com/sites/Forskningsdata/SitePages/Fiskeridata.aspx), and some data is publicly available directly from [FDIR](https://www.fiskeridir.no/Tall-og-analyse/AApne-data) (also in Norwegian). +Within the IMR-computer-network both landing data and sample data can be obtained from the Dataset Explorer. Consider using the tools-menu to download landing data and to compile sample data, if the pre-compiled data sets under 'commercial sampling' are not suitable. Otherwise landing data is available in various formats as described at the [IMR intranet: Fiskeridata](https://havforskningsinstituttet.sharepoint.com/sites/Forskningsdata/SitePages/Fiskeridata.aspx), and some data is publicly available directly from [FDIR](https://www.fiskeridir.no/Tall-og-analyse/AApne-data) (also in Norwegian). ## Installation RstoxFDA is an optional package in StoX. In order to use the functions introduced in this vignette in the StoX user interface, make sure RstoxFDA is installed. See installation instructions on [github: StoXProject/RstoxFDA](https://github.com/StoXProject/RstoxFDA). To install the StoX user interface, see instructions on [github: StoXProject/StoX](https://github.com/StoXProject/StoX) From bcfe0573b8c9bfb1cbbb649612d312f92c41342f Mon Sep 17 00:00:00 2001 From: arnejh Date: Tue, 2 Sep 2025 12:07:10 +0200 Subject: [PATCH 2/2] Updated the check-full.yaml to be consistent with RstoxData, RstoxBase and RstoxFramework. --- .github/workflows/check-full.yaml | 134 +++++++++++++++++++----------- 1 file changed, 87 insertions(+), 47 deletions(-) diff --git a/.github/workflows/check-full.yaml b/.github/workflows/check-full.yaml index 6754f99d..40463825 100644 --- a/.github/workflows/check-full.yaml +++ b/.github/workflows/check-full.yaml @@ -2,13 +2,13 @@ on: push: branches: - master - - develop - testing + - develop pull_request: branches: - master - - develop - testing + - develop name: R-CMD-check @@ -38,7 +38,7 @@ jobs: # ubuntu-latest is 24 as of 2024-10-31. Should we use it? - {os: ubuntu-22.04, r: 'release', pkgext: '.tar.gz', rspm: "https://cloud.r-project.org"} - {os: ubuntu-22.04, r: 'oldrel', pkgext: '.tar.gz', rspm: "https://cloud.r-project.org"} - - {os: ubuntu-22.04, r: 'oldrel-1', pkgext: '.tar.gz', rspm: "https://cloud.r-project.org"} + # - {os: ubuntu-22.04, r: 'oldrel-2', pkgext: '.tar.gz', rspm: "https://cloud.r-project.org"} # Skipping the oldrel-2, as we need equal requirements across platforms env: R_REMOTES_NO_ERRORS_FROM_WARNINGS: true @@ -53,7 +53,7 @@ jobs: - uses: actions/checkout@v4 - - name: Do autorelease increment, tagging, and environment setup + - name: Prepare for deployment at push if: github.event_name == 'push' run: | curl "https://raw.githubusercontent.com/StoXProject/unstableRepo/main/scripts/checktag-actions.sh" --output unstableRepo_checktag.sh @@ -91,36 +91,12 @@ jobs: - ############################################################################# #### 2. R package installation (with system and R package dependencies): #### ############################################################################# - #- name: Query dependencies - # run: | - # install.packages('remotes') - # saveRDS(remotes::dev_package_deps(dependencies = TRUE), ".github/depends.Rds", version = 2) - # writeLines(sprintf("R-%i.%i", getRversion()$major, getRversion()$minor), ".github/R-version") - # shell: Rscript {0} - - #- name: Cache R packages - # if: runner.os != 'Windows' - # uses: actions/cache@v4 - # with: - # path: ${{ env.R_LIBS_USER }} - # key: ${{ runner.os }}-${{ hashFiles('.github/R-version') }}-1-${{ hashFiles('.github/depends.Rds') }} - # restore-keys: ${{ runner.os }}-${{ hashFiles('.github/R-version') }}-1- - - # We don't use the code below using remotes::system_requirements anymore, since we do not have control over that function and should rather hard code the dependencies, which also lists the dependencies explicitely: - #- name: Install system dependencies - # if: runner.os == 'Linux' - # run: | - # while read -r cmd - # do - # eval sudo $cmd - # done < <(Rscript -e 'writeLines(remotes::system_requirements("ubuntu", "22.04"))') - - - name: Install MacOS system dependencies + ## 2a. System dependencies: + - name: Install system dependencies on macOS if: runner.os == 'macOS' run: | # gfortran may not exist in a period after a new R minor release: @@ -128,7 +104,6 @@ jobs: if [ -f "$gfortranFile" ] ; then rm "$gfortranFile" fi - rm -f '/usr/local/bin/gfortran' rm -f '/usr/local/bin/2to3' rm -f '/usr/local/bin/2to3-3.11' rm -f '/usr/local/bin/idle3' @@ -139,6 +114,7 @@ jobs: rm -f '/usr/local/bin/python3.11' rm -f '/usr/local/bin/python3-config' rm -f '/usr/local/bin/python3.11-config' + rm -f '/usr/local/bin/gfortran' export HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK= # This (the value should actually be empty...) prevents Homebrew from re-installing R, which will lead to .Platform$pkgType = "source". brew install gdal shell: bash @@ -154,34 +130,100 @@ jobs: shell: bash - ## 2c. R packages needed for this yaml script (not related to the Rstox package itself): + ## 2b. R packages needed for this yaml script (not related to the Rstox package itself): - name: Install CRANdependencies run: | - install.packages(c("rcmdcheck", "git2r", "sessioninfo", "knitr", "remotes", "drat")) + install.packages(c("rcmdcheck", "git2r", "sessioninfo", "knitr", "drat")) shell: Rscript {0} - ## 2d. Rstox packages and dependencies (the complicated if condition is needed since the reference to branch name is not consistent across event names). There is the issue that R sorts packge versions alphabetically, while StoX uses semantic versioning. Consequently a pre-release such as 1.2.3-9001 will be considered as newer than the official release 1.2.3 by R. We have solved this by separating the pre-releases and official releases into different repos "unstableRepo" and "testingRepo" for pre-releases and "repo" of official releases). This potentially breaks with remotes::install_deps() as it silently appends the Additional_repositories from the DESCRIPTION file to the repos, but since this would only be a problem if a pre-release is ranked as newer than the official release it will not be a problem when installing dependencies from the "repo" since the Additional_repositories points to that same repo: + ## 2c. Rstox packages and dependencies (the complicated if condition is needed since the reference to branch name is not consistent across event names). There is the issue that R sorts packge versions alphabetically, while StoX uses semantic versioning. Consequently a pre-release such as 1.2.3-9001 will be considered as newer than the official release 1.2.3 by R. We have solved this by separating the pre-releases and official releases into different repos "unstableRepo" and "testingRepo" for pre-releases and "repo" of official releases). This potentially breaks with remotes::install_deps() as it silently appends the Additional_repositories from the DESCRIPTION file to the repos, but since this would only be a problem if a pre-release is ranked as newer than the official release it will not be a problem when installing dependencies from the "repo" since the Additional_repositories points to that same repo: - name: Install R package dependencies from the unstableRepo if: (github.event_name == 'push' && github.ref_name == 'develop') || (github.event_name == 'pull_request' && github.base_ref == 'develop') run: | - remotes::install_deps(dependencies = TRUE, repos = c("https://stoxproject.github.io/unstableRepo/", "https://cloud.r-project.org/")) + # We hard code the list of top level dependencies, since the behavior of remotes::install_deps() that we used before is very unclear (e.g. how is the Additional_repositories included in the list of repos?): + topLevelDeps <- c( + # Imports: + "data.table", + "ggplot2", + "gridExtra", + "methods", + "RColorBrewer", + "rnaturalearth", + "rnaturalearthdata", + "RstoxData", + "RstoxBase", + "sf", + # Suggests: + "knitr", + "rmarkdown", + "tinytest" + ) + install.packages( + topLevelDeps, + dependencies = TRUE, + repos = c("https://stoxproject.github.io/unstableRepo/", "https://cloud.r-project.org/") + ) shell: Rscript {0} - name: Install R package dependencies from the testingRepo if: (github.event_name == 'push' && github.ref_name == 'testing') || (github.event_name == 'pull_request' && github.base_ref == 'testing') run: | - remotes::install_deps(dependencies = TRUE, repos = c("https://stoxproject.github.io/testingRepo/", "https://cloud.r-project.org/")) + # We hard code the list of top level dependencies, since the behavior of remotes::install_deps() that we used before is very unclear (e.g. how is the Additional_repositories included in the list of repos?): + topLevelDeps <- c( + # Imports: + "data.table", + "ggplot2", + "gridExtra", + "methods", + "RColorBrewer", + "rnaturalearth", + "rnaturalearthdata", + "RstoxData", + "RstoxBase", + "sf", + # Suggests: + "knitr", + "rmarkdown", + "tinytest" + ) + install.packages( + topLevelDeps, + dependencies = TRUE, + repos = c("https://stoxproject.github.io/unstableRepo/", "https://cloud.r-project.org/") + ) shell: Rscript {0} - name: Install R package dependencies from the official repo if: (github.event_name == 'push' && github.ref_name == 'master') || (github.event_name == 'pull_request' && github.base_ref == 'master') run: | - remotes::install_deps(dependencies = TRUE, repos = c("https://stoxproject.github.io/repo/", "https://cloud.r-project.org/")) + # We hard code the list of top level dependencies, since the behavior of remotes::install_deps() that we used before is very unclear (e.g. how is the Additional_repositories included in the list of repos?): + topLevelDeps <- c( + # Imports: + "data.table", + "ggplot2", + "gridExtra", + "methods", + "RColorBrewer", + "rnaturalearth", + "rnaturalearthdata", + "RstoxData", + "RstoxBase", + "sf", + # Suggests: + "knitr", + "rmarkdown", + "tinytest" + ) + install.packages( + topLevelDeps, + dependencies = TRUE, + repos = c("https://stoxproject.github.io/unstableRepo/", "https://cloud.r-project.org/") + ) shell: Rscript {0} - ## 2e. Session info: + ## 2d. Session info: - name: Session info run: | options(width = 100) @@ -225,13 +267,12 @@ jobs: - ####################################################### #### 4. Build the package source and binary files: #### ####################################################### - - name: Build package source archive from branches develop, testing and master - if: runner.os == 'Linux' && matrix.config.r == '4.3' && github.event_name == 'push' && (github.ref_name == 'master' || github.ref_name == 'testing' || github.ref_name == 'develop') + - name: Build package source archive from branches develop, testing and master (on Linux for some reason) + if: runner.os == 'Linux' && matrix.config.r == 'release' && github.event_name == 'push' && (github.ref_name == 'master' || github.ref_name == 'testing' || github.ref_name == 'develop') run: | pkgbuild::build(".", dest_path = ".", binary = FALSE) system(paste0("PKG_FREL=", Sys.getenv("PKG_FILE"), " >> ", Sys.getenv("GITHUB_ENV"))) @@ -250,12 +291,11 @@ jobs: - ###################################### #### 5. Deploy to the drat repos: #### ###################################### - ## 5a. Upload to the official (DRAT) repo, but only from the master branch, and only for pre-releases, which are those ending with -900x as identified in the script checktag-actions.sh and routed through this yaml to the script deploy-actions.sh (in the folder https://github.com/StoXProject/unstableRepo/blob/main/scripts/): + ## 5a. Upload to the official (DRAT) repo, but only from the master branch: - name: Upload to the official (DRAT) repo if: ( (runner.os == 'Windows') || (runner.os == 'macOS') || (runner.os == 'Linux' && matrix.config.r == 'release') ) && github.event_name == 'push' && github.ref_name == 'master' env: @@ -265,7 +305,7 @@ jobs: shell: bash - ## 5b. Upload to the (DRAT) testingRepo, but only from the testing branch, and only for pre-releases, which are those ending with -900x as identified in the script checktag-actions.sh and routed through this yaml to the script deploy-actions.sh (in the folder https://github.com/StoXProject/unstableRepo/blob/main/scripts/): + ## 5b. Upload to the (DRAT) testingRepo, but only from the testing branch: - name: Upload to the testing (DRAT) repo if: ( (runner.os == 'Windows') || (runner.os == 'macOS') || (runner.os == 'Linux' && matrix.config.r == 'release') ) && github.event_name == 'push' && github.ref_name == 'testing' env: @@ -275,7 +315,7 @@ jobs: shell: bash - ## 5c. Upload to the (DRAT) unstableRepo, but only from the develop branch, and only for pre-releases, which are those ending with -900x as identified in the script checktag-actions.sh and routed through this yaml to the script deploy-actions.sh (in the folder https://github.com/StoXProject/unstableRepo/blob/main/scripts/): + ## 5c. Upload to the (DRAT) unstableRepo, but only from the develop branch: - name: Upload to the unstable (DRAT) repo if: ( (runner.os == 'Windows') || (runner.os == 'macOS') || (runner.os == 'Linux' && matrix.config.r == 'release') ) && github.event_name == 'push' && github.ref_name == 'develop' env: @@ -291,7 +331,7 @@ jobs: ############################### - name: Create release on GitHub and upload files for testing branch - if: ( (runner.os == 'Windows' && matrix.config.r != 'next') || (runner.os == 'macOS' && matrix.config.r != 'next') || (runner.os == 'Linux' && matrix.config.r == '4.3') ) && github.event_name == 'push' && github.ref_name == 'testing' + if: ( (runner.os == 'Windows') || (runner.os == 'macOS') || (runner.os == 'Linux' && matrix.config.r == 'release') ) && github.event_name == 'push' && github.ref_name == 'testing' uses: ncipollo/release-action@v1 with: allowUpdates: true @@ -302,7 +342,7 @@ jobs: token: ${{ secrets.GITHUB_TOKEN }} - name: Create release on GitHub and upload files for master branch - if: ( (runner.os == 'Windows' && matrix.config.r != 'next') || (runner.os == 'macOS' && matrix.config.r != 'next') || (runner.os == 'Linux' && matrix.config.r == '4.3') ) && github.event_name == 'push' && github.ref_name == 'master' + if: ( (runner.os == 'Windows') || (runner.os == 'macOS') || (runner.os == 'Linux' && matrix.config.r == 'release') ) && github.event_name == 'push' && github.ref_name == 'master' uses: ncipollo/release-action@v1 with: allowUpdates: true