Changes in Version 1.5.0

  o Now depends on R >= 4.1.0.

  o update.sitar has been streamlined and should now be faster.

  o plot.sitar now handles par() parameters for combined distance-velocity plots
    differently - a breaking change. Instead of entries for the y2 axis being
    collected in parameter 'y2par', the entries for both y1 and y2 axes are now
    combined - see examples.

  o Other breaking changes in plot.sitar - the argument 'design' has been
    removed, and the first three tibble column names returned from the helper
    functions 'plot_d' etc are now the names of x, y and id from the original
    sitar call.

  o A new function getDV returns peak velocity and age at peak velocity for
    individuals, including those with a truncated growth curve - see the example.

  o predict.sitar now calculates velocity by differentiating each point (as dy/dx)
    rather than differentiating the mean spline curve. This means it handles
    velocities at a single age, and can return predicted distance and velocity
    for both levels 0 and 1.

  o In addition the arguments xfun and yfun in predict.sitar have been removed -
    a breaking change.

  o The d random effect now has an alternative parameterisation, controlled by
    the sitar argument d.adjusted. The age slope d is the regression coefficient
    of y on x, and when d.adjusted = TRUE x is first adjusted for random
    effects b and c, reflecting individual developmental age rather than
    chronological age. The default d.adjusted = FALSE appears on limited testing
    to fit better.

Changes in Version 1.4.0

  o plot.sitar plots multiple curves for options 'd' and 'v' when the model
    includes categorical variables.

  o plot.sitar option 'V' returns velocity curves that are both faster and
    more accurate.

  o xyadj is extended to convert velocity from/to the mean.

  o If df > 1 and random = 'a+b+c+d' then fixed = 'a+b+c' by default.

  o If df = 1 in sitar then fixed effects b and d are excluded.

  o the function identity is now recognised by ifun.

  o Bugs in update.sitar and BICadj relating to the keep.data argument are fixed.

  o An egregious bug with factor covariates in predict.sitar is fixed.

  o The fitnlme function in sitar is simplified.

  o A bug in ob_convertr2 handling missing data is fixed.

Changes in Version 1.3.0

  o Typos in the berkeley dataset reported as issue #7 are fixed.

  o The argument keep.data is added to sitar with default TRUE. This saves a
    copy of the data in the object, which avoids some environment issues.

  o ob_convertr is rewritten and extended with the addition of ob_convertr2, and
    is now much faster. As a result the interface is altered - a breaking change.

  o The dataset deren example is updated to match the revised ob_convertr.

Changes in Version 1.2.0

  o The dataset deren is added for use with ob_convertr.

  o A function ob_convertr is added which converts child prevalence rates for
    underweight, overweight or obesity from one reference cutoff to another.

  o dfpower is extended to include fixed effects for a-b-c-d as well as spline
    degrees of freedom and powers of x and y. It also now passes the control
    arg if set and refits the target object.

  o A major extension to the SITAR model is to add a fourth random effect
    called d, which is the age slope. It allows the simple random intercept
    random slope model to be fitted, but it also extends the usual SITAR model by
    allowing the adult portion of the growth curve to vary in slope.

  o A breaking change fixes the prediction and plotting of mean curves for models
  	with fewer fixed effects than random effects, e.g. random = 'a + b + c' and
  	fixed = 'a + b'. The mean curve now corresponds to the mean of the fitted
  	random effects, whereas before it did not.

  o The fitted SITAR model now includes an element 'constants', a data frame
    giving the mean values of a-b-c-d indexed by unique levels of covariates
    where fitted. Can be useful for models with complex fixed effects.

  o Two functions optimal_design and nagegp are added for the optimal design of
    group reference centile studies - see Cole (Statistical Methods in Medical
    Research, 2020). A vignette has also been added describing how to use them.

  o The cdc2000 and iotf datasets are added.

  o The who0607 dataset is added, extending who06 to age 19 for height, weight
    and BMI.

  o The ukwhoterm dataset is added, similar to ukwhopt but excluding infants
    born preterm.

  o The ukwhopt dataset is extended to cover age 26 weeks gestation to 20 years.

  o apv_se is updated to work with the latest version of rtidy.

  o LMS2z is extended to handle disjunct references, where the centiles have a
    break or disjunction. Sex is also checked for more carefully.

  o sitar has a new argument pdDiag, which forces the random effects covariance
    matrix to be diagonal. Convergence can be much quicker, though the model may
    fit less well.

  o pdLMS density calculation corrected.

  o In plot.sitar, transformations of x / y using xfun / yfun are now applied
    after back-transforming x / y to their original scales.

  o getPeakTrough algorithm improved, and takeoff argument added for use with
    velocity curves to identify age at takeoff.

  o Methods getPeak, getTrough and getTakeoff are added as special cases of
    getPeakTrough.

Changes in Version 1.1.1

  o trim (new) option in plot.sitar to remove unsightly long lines from plots.

  o For trim to work, mplot now allows rows with missing data.

  o apv_se (new) bootstraps standard errors for peak velocity (pv) and age at pv.

  o getPeakTrough now uses xy.coords and returns NA if no turning points.

  o Fix several bugs in plot.sitar, involving subset with predict, dashed line
    for velocity, and axis 4 etc.

  o BREAKING CHANGE - options 'dv' with subset in plot.sitar now work as they
    should, showing mean curves for the subset selected.

  o predict.sitar improved so individual velocity curves (option V) now plot
    correctly when y and/or t are transformed.

  o Fix bugs in xyadj improving the defaults for y and id, and making abc a
    data frame and adding missing columns.

  o msMaxIter default in nlmeControl doubled to 100.

  o getData.sitar now based on getData.nlme not getData.lme.

  o LMS2z now requires 'measure' to be character, changing example accordingly.
    Also the specification of the sex argument has been improved and extended.

Changes in Version 1.1.0

  o plot.sitar now allows data output for plotting in ggplot2 etc.

  o plot.sitar now applies apv to multiple curves (options D and V).

  o Fix bug in plot.sitar with options dv.

  o Add vignette Fitting models in SITAR.

  o Add berkeley dataset.

  o cLMS and zLMS now return a matrix if z or x are matrices.

  o LMS2z now returns a matrix if y is a matrix.

  o Fix bug in z2cent for 11th, 12th and 13th centiles.

  o pdLMS (new) plots density function(s) of Box-Cox transformed variable(s).

  o mplot now omits rows with missing data.

  o predict.sitar now recognises special case of .x and .id in newdata.

Changes in Version 1.0.10

  o getPeakTrough (new) identifies peaks and troughs of a curve
    (used to improve code for age at peak velocity - replaces makess).

  o AICadj and BICadj now adjust for subset, and code improved.

  o dfpower (new) tabulates BIC/AIC for SITAR models by degrees of freedom
    and/or xy power transformations.

  o getL (new) extracts the power transform of a variable in an expression.

  o dfset (new) identifies optimal degrees of freedom for a natural
    spline curve.

  o Improve label handling in plot.sitar.

  o Fix bug in update.sitar with df and xoffset.

  o Fix bug in predict.sitar when b.formula = ~covariate - 1.

  o Fix bug in predict.sitar with abc.

  o Constrain df to be >1 in sitar.

  o Fix bug in sitar with make.names.

Changes in Version 1.0.9

  o Fix bug in sitar with subset.

  o Improve ifun call, code and documentation, adding verbose arg and
    returning varname as attribute.

  o Reorder args in xyadj.

  o Fix bug in y2plot with par(mar).

  o Add lag, differences, sort and keepNA to diffid args.

  o Fix bug in predict.sitar concerning id in newdata.

  o Improve handling of ... args in plot.sitar with D and V options.

Changes in Version 1.0.8

  o timegap (new) indexes equally spaced ages, to simplify binning age
    into age groups.

  o Use dynGet instead of get in BICadj.

  o Improve handling of y2 axis in y2plot.

  o Fix bug in plot.sitar introduced in 1.0.7.

Changes in Version 1.0.7

  o Add github URL to DESCRIPTION.

  o Documentation and NAMESPACE now generated by Roxygen2, and S3 methods
    no longer visible.

  o Extend ifun to handle cospi, sinpi and tanpi, and improve documentation.

  o Extend predict.sitar to handle deriv 2 (acceleration).

  o Extend sitar to allow functions in a.formula, b.formula and c.formula.
    Improve documentation for this case.

  o Fix bug in sitar where the start vector is the wrong length.

  o Fix bug in predict.sitar involving default value of yfun argument.

  o Fix bug in predict.sitar for when a.formula, b.formula and c.formula
    involve a single variable.

Changes in Version 1.0.6

  o Tidied up code in predict.sitar and xyadj, altering the defaults for abc, xfun and yfun.
    The asList argument in predict.nlme and level == 0:1 now work correctly.

  o Fixed a bug in predict.sitar involving covariates in newdata (Costanza Pizzi).
    Factors in newdata are now represented as <factor> = <level> rather than
    <factor><level> = [01] as before.

  o Fixed a bug in plot.sitar involving subset with options d and v (Costanza Pizzi).

  o Fixed a bug in plot.sitar involving subset with options D and V.

Changes in Version 1.0.5

  o xoffset and bstart rationalised in sitar and update.sitar. Now xoffset defaults to mean(x)
    and bstart defaults to xoffset, leading to greater stability in model fitting.
    This is a more complete solution to issue 2 in 1.0.4. Note that models fitted
    in previous versions need to be refitted.

Changes in Version 1.0.4

  o update.sitar code updated and simplfied.

  o in sitar and update.sitar the offset for knots and bounds changed
    from bstart to mean(x) (suggestion of Jeroen Sichien).

  o LMS2z loses data argument.

  o LMS2z, cLMS and zLMS now return a vector or a matrix.

  o predict.sitar and plot.sitar now create function fitnlme on the fly when it's missing.

  o sitar handling for weights commented out.

  o ifun bugs fixed and code simplified.

  o man pages updated.

Changes in Version 1.0.3

  o The heights database had age at menarche added.

  o In plot.sitar ifun was used to automatically back-transform transformations
    of x and/or y in the sitar model.

  o ifun (new) inverts an expression defining a data transformation.

  o xyadj (new) adjusts x and y variables for SITAR random effects.

  o predict.sitar was extended with a deriv argument to give predicted velocity.

  o getCovariate and anova methods for sitar were added.

  o	In plot.sitar new options D and V provide spline curves of individual
    distance and velocity curves.

  o	In sitar and plot.sitar bugs were fixed and code simplified by use of
    predict.sitar, xyadj and ifun.

Changes in Version 1.0.2

  o In DESCRIPTION the title and description were corrected, and Suggests
    was changed to Imports.

  o In NAMESPACE lines.sitar and print.summary.sitar were added to S3 methods
    and splines was added to import (both previously omitted in error).

  o predict, getVarCov and getData methods for sitar were added.

  o The sitar command was rewritten to save the function fitnlme, for use
    with predict. As a result the hidden file .fitnlme is no longer created.

  o The plot.sitar command now uses predict to control the number of points
    when drawing spline curves, and any covariate values default to zero.

  o LMSfit was added.

  o lms2z was renamed LMS2z for consistency.

  o	The changes in 1.0.1 to the graphical options xaxsd and yaxsd to deal
    with log scales were corrected.

  o The man files were updated.


Changes in Version 1.0.1

  o The environment for reading the call in sitar, plot.sitar and lines.sitar
    was corrected.

  o	The graphical options xaxsd and yaxsd were extended to deal with log scales.


Changes in Version 1.0

  o First CRAN release of package "sitar" for growth curve analysis.
