Errata & Notes


  • Page 86, Footnote 7 – “Ager C” should be “Ager B”.
  • Page 207, Equation for \(\hat{Z}\)\(N\) should be \(n\) in the denominator. Thus, the new equation should be

\[\hat{Z} = -log(\hat{S}) - \frac{(n-1)(n-2)}{n(T+1)(n+T-1)} \]


Post-Production Changes

  • Throughout – I have removed filterD() from FSA. Please see this fishR post for how to accomplish the same effect using functions from dplyr.
  • Section 2.4 – The maintainers of tidyr suggest using pivot_longer() instead of gather() and pivot_wider() instead of spread(), though gather() and spread() still work as shown in the book.
  • Section 4.2 – I have dramatically changed the age-bias plot that is produced by plot() with an object saved from ageBias(). This change is described in the documentation and examples for ageBias(). The plots shown in the book can largely still be produced with plotAB() (see its documentation here). Also see this fishR post for a description of constructing an age-bias plot using ggplot2.
  • Section 4.4 – I have changed the information that is returned from agePrecision(). All of the information shown in the book is still provided; however, other information (e.g., average standard deviation and mean absolute deviation) are now also returned. The output is documented in the documentation for agePrecision().
  • Sections 7.3.3,, 12.3.6, and 13.2.2residPlot() has been removed from the FSA package. Other methods for constructing residuals plots are discussed in this fishR post.
  • Sections 12.3.1 and 13.1 – The dynamic plots described for finding starting values for a von Bertalanffy growth function and the stock-recruitment functions (i.e., nonlinear regressions) have been removed from vbStarts() and srStarts(), because of the difficulty of maintaining a package that requires the tcltk package. These functionalities are now in the FSAsims package, but it can also largely be replicated with the fixed= arguments to vbStarts() and srStarts(). Use of fixed= in srStarts() is demonstrated in this blog post.