Changes in 2.2

o LCa.fit added: Fits Lee-Carter models with smooth age and time
  effects to rate-data. print, summary, plot and predict methods also
  supplied. 

Changes in 2.1

o The show.BE="nz" feature in boxes.Lexis is now documented

o "[.Lexis" is now exported and works... 

Changes in 2.0

o cbind, rbind and "[" methods for Lexis objects have been added

o Consequential fixes in simLexis

Changes in 1.1.72

o Improved man page for N2Y

Changes in 1.1.71

o Bug from calling lme4::vcov from within ci.lin fixed

Changes in 1.1.70

o Bug in calling lme4::fixef from within ci.lin fixed

o ci.lin with sample=TRUE now samples from the posterior of the
  parameter vector and then transforms this by the contrast matrix
  (earlier the sampling was from the posterior of the ctr.mat
  transformed parameters). 

Changes in 1.1.69

o ci.cum now has an argument ci.Exp (defaults to FALSE) that computes
  the ci of the cum.haz on the log-scale. This is useful if you want to
  transform c.i.s to the survival scale and want the c.i.s for the
  survival function to stay inside [0,1].

o ci.pred updated to automatically use the inverse link for
  transformation of results. Also now only accepts glm objects.
  
o Ns now have arguents ref= and detrend=. ref= allows a reference
  value to be specified (where the Ns is 0); this is independent of
  the supplied data. detrend= projects the columns of Ns() on the
  orthogonal of the variable supplied; this is strongly dependent on
  the data.

Changes in 1.1.68

o ci.lin has been groomed to use internally (newly, from 1.1.68)
  defined methods COEF and VCOV to extract coefficients and
  variance-covariances of these from different types of objects.

Changes in 1.1.67

o The simLexis vignette has been groomed a bit

o The function ci.pred (a wrapper for predict.glm) added

Changes in 1.1.66

o A crr.Lexis method has been added to simplify the use of the
  Fine-Gray model when data are set up in a Lexis object.

o ci.lin and ci.exp now recognises crr objects.

o A wrapper, ci.pred, for predict.glm has been added, it returns
  predictions with confidence intervals.

Changes in 1.1.65

o Despite the note, dropped rows from construction of a Lexis objects
  were not put in the "dropped" attribute.

Changes in 1.1.64

o Fixed the sim-Lexis vignette

Changes in 1.1.64

o Added function ZArray, which generates an array of 0s just as NArray
  generates an array of NAs.

o Updated code to avoid "::" and ":::" as far as possible, as well as
  "<<-". Hence excluded records from construction of a Lexis object is
  now put in an attribute "dropped" of the Lexis object.

Changes in 1.1.62

o Bug fix in the example code for boxes.Lexis

Changes in 1.1.61

o ci.lin updated to recognize objects of class "lmerMod" from lmer.

Changes in 1.1.60

o Documentation for DMlate updated.

Changes in 1.1.59

o boxes.Lexis updated so that also no. of beginners and enders are
  properly formatted if larger than 999

Changes in 1.1.57

o boxes.Lexis updated with arguments show.BE and BE.pre, allowing
  annotation of boxes by the *number* of persons strating and ending
  in different states.

Changes in 1.1.57

o simLexis substantially updated and groomed to accept Cox-models for
  transitions too. Example in the documentation and vignette is
  expanded accordingly.

Changes in 1.1.56

o Typos in documentation corrected.

o When records with too short follow-up are encountered by Lexis, they
  are dropped from the resulting object, but they will be availabe in
  the object drop.sh in the global environment.

o The col and border arguments to plot.pState were not repeated
  automatically, so needed fixing.

o More elaborate warning and error-messages if initiators in absorbing
  states are handed to simLexis.

Changes in 1.1.55

o Documentation of clogistic is clarified w.r.t. likelihood
  contributions of matched sets.

Changes in 1.1.54

o apc.fit updated to use the Ns wrapper, and automatically use knots
  located so that the marginal number of events is the same between
  knots.

o plot.apc and lines.apc defined as methods for apc objects. They are
  just wrappers for apc.plot and apc.lines.

o gen.exp example slightly modified to give better output.

Changes in 1.1.53

o Population figures in N.dk, M.dk and Y.dk updated

Changes in 1.1.52

o col.txt argument to plotEst was not working properly. Fixed

o txt argument to plotEst can now be an expression vector allowing
  sub- and superscripts and mathematical expressions.

o Relevel did not issue warning or error when a given level was being
  specified as member of more than one new level. It now stops with an
  error.

o The convenience wrappers Ns (for ns) and NArray (for array) have
  been added

Changes in 1.1.51

o boxes.Lexis fixed so that rates could be computed from matrix input
  to.

Changes in 1.1.50

o Calculation of p-values in ci.lin has been modified, thyanks to
  Krista Fischer.

Changes in 1.1.49

o Default of "border" argument to plot.pState changed to "transparent"

Changes in 1.1.48

o Slight tidying of code in apc.fit. Automatic determination of
  reference points for period and cohort fixed to produce median
  correctly.

Changes in 1.1.47

o Bug in simLexis (specifically in Epi:::simX) where factor levels
  were wrongly used, is now corrected. Versions earlier are likely to
  produce wrong state allocation in simulated dataset and not crash.

Changes in 1.1.46

o lex.id handling in simLexis changed, allows for easier simulation in
  chunks which may be necessary to avoid memory problems.

Changes in 1.1.45

o simLexis introduced. Allows simulation from multiple timescale
  mulitste models. Accompanying utilities supplied too: pr.Lexis, prev
  and plot.prev.

Changes in 1.1.44

o A number of dead links in the documentation have been resurrected.

o attach() purged from Lexis.diagram, Lexis.lines and ccwc.

o Bug in computing AUC in ROC fixed, thanks to Karl Ove Hufthammer.
  Documentation clarified with respect to definition of test.

o Bug fix to remove warning when more than one variable name was
  supplied in the by= argument of summary.Lexis.

Changes in 1.1.43

o N2Y fixed so that local variable bindings are recognized (M. Plummer)

o summary.Lexis expanded with the argument by=, allowing a summary by a
  factor. Also, the default behaviour is now to return only the
  transition summary, and only optionally the transition rates;
  giverned by the Rates= argument

Changes in 1.1.42

o Bug that caused a crash of ROC when vaiables in the "form" argument
  were only in the "data" argument data frame and not in the global
  environmant. Now fixed thanks to Ben Barnes of the Robert Koch
  Institute, German Center for Cancer Registry Data

Changes in 1.1.41

o boxes.Lexis now returns an object of class MS, which easily allows
  plotting of slightly modified multistate displays using the new
  command boxes.MS. The facility in boxes.Lexis to produce weedy code
  for the same purpose has been removed.

o boxes.Lexis now allows to show *both* number of transitions *and*
  rates between the states.

o stack.Lexis now takes the Lexis attributes "time.scales" and "breaks"
  across from the Lexis object to the stacked.Lexis object.

Changes in 1.1.40

o subset, transform and Relevel methods have been added for objects of
  type stacked.Lexis.

Changes in 1.1.39

o effx has been expanded with an extra argument eff=, which defaults
  to NULL, allows "RR" for relative risk for binary data, and "RD" for
  rate differences for failure data. Also logical response is admitted
  for binomial and failure responses.

o factorize and Relevel are now synonyms. Methods for Relevel are
  Relevel.default, Relevel.factor, Relevel.Lexis, for factorise only
  the factorize.default and factorize.Lexis exist.

o A mistake in estimating sequential residuals in apc.fit() has been
  corrected. The wrong model (adc instead of rc, in the case parm ==
  "AD-C-P") was used for the basis of residuals. Thanks to Shih-Yung
  Su from Taiwan.

o as.Date.cal.yr is added, even though it was removed earlier: cal.yr
  is a class for date variables and the conversion function should be
  around.

o A bug in ci.pd causing calculations to go wrong if vectors were
  supplied as input. Correction thanks to Patrick Rymer.

o A bug in factorize.Lexis is fixed. Now appropriately groups factor
  levels in the state factors lex.Cst and lex.Xst.
  Relevel.Lexis is defined as an alias for factorize.Lexis. Thus the
  functins Relevel() and factorize() are now identical.

Changes in 1.1.36

o A bug in boxes.Lexis causing arrow-coloring to go out of sync fixed

o Array problems in stat.table fixed

Changes in 1.1.35

o none. Just compiled for the archive with R 2.15.0

Changes in 1.1.34

o plotEst now has an arguments col.txt and font.txt which allows the
  use of different colors and fonts for the annotation of the
  estimates. Models likely to be multiplicative incurs a logarithmic
  x-axis in the plot.

o ci.exp introduced - a wrapper for ci.lin, getting the exponentiated
  parameters with CIs.

o A bug causing unintended reordering of levels using boxes.Lexis is
  fixed.

o Method etm for Lexis objects included. This just takes a Lexis
  object, and fishes out the relevant information to be able to call
  the function etm from the etm package (empirical transition matrix).
  This function is now physically defined in the file(s)
  foreign.Lexis.R(d).

Changes in 1.1.32

o gen.exp was re-written and simplified.

o Small cosmetic changes to the code for N2Y

Changes in 1.1.31

o The extractor functions entry, exit, status and dur have now an
  argument by.id=FALSE. If set to TRUE, only one record per lex.id is
  returned and the resulting object has lex.id as (row)names attribute.

Changes in 1.1.30

o DMlate expanded with the column dooad

o Documentation for as.Date.cal.yr fixed

o Bug in gen.exp fixed (It was assuming a data frame called dfr
  existed was wrong, but not spotted by the example because in the
  example one actually did exist!)

Changes in 1.1.29

o New function gen.exp for generating time-varying exposure variables
  from drug purchase records.

Changes in 1.1.28

o splitLexis now allows NAs in the timescale on which you split.
  Records with NAs are simply left untouched, but a warning is
  printed.

o A bug in boxes.Lexis preventing rates to be printed was issued.

Changes in 1.1.27

o A few typos corrected

o Functions a.lines, a.points, cp.lines and cp.points added to
  facilitate plotting points and curves from APC-models.

o apc.fit did not return the reference cohort/period if it was not
  supplied in a model with explicit drift.

Changes in 1.1.26

o A new function N2Y added which computes person-years in Lexis
  triangles from population prevalence data.

o Demographic example data from Denmark added:
  N.dk - population size at 1 Jan
  Y.dk - risk time in Lexis triangles
  M.dk - mortality data
  B.dk - births in Denmark 1902 ff.

Changes in 1.1.25

o Added sd() function to stat.table()

o tmat.Lexis has an argument Y=FALSE which if set to TRUE will return
  the person-years in the diagonal.

o boxes() now explicitly defined with methods boxes.Lexis and
  boxes.matrix that explicitly call boxes.default (which is the function
  doing the work (almost identical to the former boxes.Lexis).

Changes in 1.1.24

o countLexis did not take the "timescales" and "breaks" attribute
  across to the resulting Lexis object.

Changes in 1.1.23

o A missing defualt value for new.scale in doCutLexis caused a crash
o A missing default value for new.scale in doCutLexis caused a crash
  when using the count=TRUE argument to cutLexis.

Changes in 1.1.23

o ci.lin and ci.cum now have a sample= argument that causes return of
  a sample from the normal distribution with mean equal to the
  estimates and variance equal to the estimated variance of the
  estimates. To be used to do "parametric bootstrap" of complicated
  functions of the parameters, such as state occupancy probabilities
  from multistate models.

o ci.lin now supports objects of class mipo (Multiple Imputation
  Pooled Objects --- see the mice package).

o tabplot removed --- it was a proper subset of the mosaicplot from
  the graphics package

Changes in 1.1.22

o A bug in boxes.Lexis prevented the use of ht= and wd= arguments to
  set boxes to a prespecified size. The scaling of these is now also
  clarified in the man file for boxes.Lexis.

Changes in 1.1.21

o Specifying period of cohort effects with only two parameters caused
  apc.fit to crash. Fixed by adding a few ",drop=FALSE" in subsetting
  of matrices.

o Since as.Date.cal.yr was not used anywhere, it has been removed from
  the package.

o A function Wald added to do Wald test of several parameters or
  linear combinations of them. It is a small extension on top of
  ci.lin.

Changes in 1.1.20

o CITATION file added.

Changes in 1.1.19

o ci.lin amended by an argument subint= allowing to select subsets of
  parameters matching several strings.

Changes in 1.1.18

o boxes.Lexis has been made a bit more versatile for production of
  box-diagrams from multistate models.

Changes in 1.1.17

o A comma was missing in the code-output from boxes.Lexis

o mstate.Lexis function changed name to msdata.Lexis, according to the change
  in convention in the mstate package. Code simplified as it is now using the
  functionality in stack.Lexis.

o A factorize.Lexis function has been added, it basically changes the variables
  lex.Cst and lex.Xst to factors with same set of levels. A useful facility when
  we want boxes.Lexis to work.

Changes in 1.1.16

o boxes.Lexis now resets the graphical parameters (par()) on exit.

o plot.Lexis now has a default Lexis object as argument, allowing use of the
  function to plot empty Lexis diagrams without setting up a Lexis object first.
  The bogus object has timescales c("Date","Age") but 0 follow-up time.

Changes in 1.1.14

o ci.lin now has an argument df to allow for t-quantiles in ci calculations.

o lls() function revised to give nicer (left justified) output.

Changes in 1.1.13

o ci.lin now supports objects of class clogistic.

o utility function ci.mat() added --- earlier defined inside ci.lin and ci.cum,
  but also useful on its own.

o lls() and clear() added, to ease overview and clearing of workspace
  (and attachments!)

o apc.frame now sets the option "apc.frame.par" with the offset and
  scaling of calendar time part of the apc frame. This is recognised
  now by apc.lines automatically.

o Function pc.points, pc.lines, pc.matlines, pc.matpoints added to
  ease plotting the calendar time region of an apc frame; live off the
  option "apc.frame.par".

Changes in 1.1.12

o Added function clogistic for conditional logistic regression.

Changes in 1.1.9

o A function PY.ann.Lexis is added. It writes the length of (pieces of)
  lifelines in a Lexis digram produced by plot.Lexis.

o plot.Lexis now sets an option "Lexis.time.scale" which is queried by
  lines.Lexis and points.Lexis, so that time.scale is only needed in
  plot.Lexis.

Changes in 1.1.8

o apc.fit had a bug in the specification of knots when using the argument
  model="bs". Fixed.

Changes in 1.1.7

o boxes.Lexis has been further enhanced with the facility to plot rates
  instead of no. transitions on the arrows if required. The code has been
  tidied a bit too.

o The man file for boxes.Lexis and subsidiaries have been renamed to
  MS.boxes.Rd

Changes in 1.1.5

o boxes.Lexis have been enhanced to accommodate two-way transitions between
  states. Annotation by number of transitions has been improved to accommodate
  this too by always putting the number on the left side of the arrow.

Changes in 1.1.3

o ci.lin() and ci.cum() have been expanded to accept objects of class
  "MIresult" from the mitools package (Esa Läärä).

o The boxes.Lexis() now gives a more versatile piece of code, which
  computes the text widths and heights.

Changes in 1.1.2

o cutLexis crashed if new.state=TRUE and new.scale=FALSE were specified.
  Fixed.

Changes in 1.1.1

o Functions stack.Lexis, tmat.Lexis and mstate.Lexis have been added
  to facilitate practical multistate modeling. The two latter provides an
  interface to the mstate package.

o Functions tbox, dbox, fillarr, boxarr and boxes.Lexis added to facilitate
  drawing of multistate box diagrams.

Changes in 1.1.0

o Two new datasets DMrand and DMlate with random samples from the
  Danish National diabetes register. The examples from these
  illustrate most of the recently added multistate stuff.

o Minor bug in check.time.scale was fixed (misplaced parentheses in the
  argument to any(), causing a warning).

o cutLexis introduces a new timescale "time since event", which has
  missing values for any follow-up time prior to event.  Hence
  requires that the Lexis plotting functions explicitly discards the
  units with missing on timescales in use. Accomplished by the new
  function valid.times.

o cutLexis now places the new states after the precursor states and before the
  other ones in the factors lex.Cst and lex.Xst.

o splitLexis uses the first timescale by default. Which in particular
  means that in the case of only one time scale it is not necessary to
  specify it, so this has become acceptable now.

o Vignettes has been updated.

o Example for ci.cum has been fixed to be compatible with the new survival
  package as of 2.9.0 as announced.

o apc.fit fitted the wrong model when using parm="AC-P". Fixed

o The axis scaling of apc.plot has been improved.

o apc.frame now by default plots a reference line for RR=1, this may be
  switched off by the (newly introduced) parameter "ref.line=FALSE".

Changes in 1.0.10

o Fixed parse errors in documentation.

Changes in 1.0.9

o Thanks to Mike Murphy, Professor of Demography, Department of Social Policy,
  London School of Economics, a bug causing a crash of apc.fit if only
  one row in the model matrix corresponds to the reference level was fixed.

o Also thanks to Mike Murphy, a much more efficient calculation of
  median period and cohort is now used.

o apc.fit expanded with an argument allowing logistic regression model
  instead of a Poisson model only.

Changes in 1.0.8

o tab.Lexis removed and replaced by summary.Lexis which gives a better
  summary of the transitions and transition rates.

o A bug in ci.pd (confidence interval for probability difference) has
  been fixed.

Changes in 1.0.7

o Stat.table data= argument fixed.

Changes in 1.0.6

o Lexis now converts character values of entry/exit.status to factors
  for lex.Cst and lex.Xst. And produces a warning if the entry.state
  is defaulted to the first level of exit.state (i.e. when exit.state
  is given as charcter or factor).

o splitLexis gave wrong results for factor states.
  cutLexis gave wrong results for character states.
  Fixed by letting Lexis coerce character mode entry.status and exit.status
  to factors for lex.Cst and lex.Xst.

  In split.lexis.1D was the problem with the factor states, they were
  coerced to numeric when stuffed into the new.Xst matrix. Now states are
  turned to numeric before the call to split.lexis.1D and the factor
  attributes re-instituted after the split.

o Added transform method for Lexis objects.

Changes in 1.0.5

o Typos in documentation of APC functions corrected.

o cutLexis updated to handle various instances by MP.
  A few BxC additions to MP's code:
  - cutLexis2 is renamed cutLexis. BxC's old cutLexis killed.
  - count=FALSE as argument to cutLexis, just calls countLexis if TRUE.
  - cutLexis no longer returns the working column lex.cut
  - cutLexis was missing the attributes "time.scales" and "breaks". Added.
  - cut=<dataframe> is allowed, simplifying cut of split Lexis objects.
  - documentation accordingly altered.

o splitLexis amended so that lex.Xst is returned as a factor if
  lex.Cst is a factor. splitLexis crashed if lex.Cst and lex.Xst were factors.

o Lexis now allows omission of entry.status --- if exit.status is
  numeric/logical/factor, entry.status (and hence lex.Cst) will be set
  to 0/FALSE/first level.

o Lexis made sure that lex.Cst and lex.Xst have the same class. If
  they are factors, the set of levels is taken to be the union.

Changes in 1.0.1

o cutLexis now works properly - no it did not!

o cutLexis now accepts a (smaller) dataframe with cutpoints and states as input.

Changes in 0.9.6

o Bugfix in timeBand, crashed when type="factor" was chosen.
  levels was given as 0:(lengh(breaks)+1), changed to 0:lengh(breaks)

Changes in 0.9.5

o The Lexis definition now assumes that entry is 0 if only one of exit
  or duration are given as a one-component list.

o tab.Lexis is now properly working as a method for Lexis objects.

Changes in 0.9.4

o The lex.-variables in Lexis objects are now called
  lex.dur, lex.Cst, lex.Xst, lex.id (duration, Current state, eXit
  state and identification)

o An extra option states= added to Lexis. If used the state variables are
  returned as factors.

o The utility function deltat.Lexis() has been renamed to dur().

o state() now returns a dataframe of both (entry,exit) states a
  default. The reason for this is that lex.Cst and lex.Xst may be
  factors (which actually would be the logical thing to have by default,
  but it is not enforced only allowed).

o entry() and exit() now by default returns matrices with entry and
  exit times on all timescales. If only one timescale is requested,
  they return a 1-column matrix.

o A minor typo in stat.table corrected: in the definition of the
  quantile function prob=probs changed to probs=probs.

o cutLexis() bugs corrected. Now works with split data too, but
  requires specification of censoring states --- i.e. states that
  will be replaced by the new state obtained at the cut date.

Changes in 0.9.3 (since 0.9.0)

o New function cutLexis() to allow cutting of follow-up time at a
  specific date for each person, where a new state is assumed.

o New function tab.Lexis() which tabulates records as well as events
  and person-years from a Lexis object.

o splitLexis got state information wrong if breaks were not unique.
  Fixed.

Changes in 0.9.0

o effx and effx.match updated following Tartu 2007 to avoid attaching
  the data, and to correct the parsing of the list of control variables.

Changes in 0.8.0

o A new function Lexis() to define follow-up on multiple timescales has
  been added. An object of class Lexis is defined and a number of
  utilities for the class are available. Time-splititng is now done by
  splitLexis().

o The old Lexis function for time-splitting has been renamed to
  W.Lexis for backward compatibility.

o The function epi.eff() has been replaced by effx() and effx.match().

Changes 0.7.2 to 0.7.3

o Icens is now able to handle a constant underlying rate. (A bug in
  expand.data was fixed).

Changes 0.7.0 to 0.7.2

o Bugs in ROC fixed, and the functionality of the grid option slightly
  chnaged.

Changes 0.6.1 to 0.7.0

o Function Icens() for estimation of rates from intervalcensored
  follow-up data by Martyn Plummer added.

o Function epi.eff by Michael Hills is added. Estimates effects in
  various epidemiological study types.

Changes 0.6.0 to 0.6.1

o Coding errors in thoro dataset corrected. Only concerning dates and
  status for livercancer diagnosis.

o Lexis.lines now allows col.life, lwd.life, pch.fail, col.fail and
  cex.fail to have the same length as the data, i.e. to produce
  individualized lines and points. As Lexis.diagram calls Lexis.lines,
  this facility is also available through Lexis.diagram.

Changes from 0.4 to 0.6

o ci.pd() amended to support the Agresti-Caffo method for confidence
  intervals for difference between proportions. Newcombes method 10
  is still used in twoby2.

o apc.fit() added. Fits age-period-cohort models with a range of
  possibilities for parametrizations.

o Functions for time-splitting at arbitrary times and at recurrent
  failures have been added: isec(), icut(), fcut1(), fcut() and
  ex1(). Eventually they will be superseded by new facilities in Lexis.

o Function apc.plot() to make a plot of an apc fit is added. It is just
  a wrapper for apc.frame() and apc.lines(), with suitable computation of
  the paramters supplied to apc.frame.

o Lexis.lines(): pch.fail and col.fail expandS to vectors of length two
  if only one value is given.

o ci.cum() aimed at computing cumulative hazard functions from
  parametric functions for hazards.

o Problem in print.floated() with printing of objects of class
  "floated" fixed.

o Problem in ci.lin when subset did not match any factor names and
  diff=T was given the function crashed. Fixed, and documentation updated.

o cal.yr produces objects of class c("cal.yr","numeric"). Functions
  as.Date.numeric and as.Date.cal.yr added.
