RMark 2.2.2 (30 Nov 2016)

CHANGES 

* patch to url's for documentation to pass CRAN check

RMark 2.2.1 (28 Nov 2016)

NEW FEATURES

* models Densitypc and DensityRanpc were added.

BUG FIXES

* export.MARK was not correctly handling models with 2 character encounter histories.

* shared submissive parameters in model RD2SpGEConOcc incorrectly had a default formula which should have been NULL. This may have prevented correctly building models with shared parameters.

CHANGES 
* added error messages to export.model so if files are missing the user is warned. export.model is used in export.MARK

* MARK 8.1 no longer accepts variable names greater than 10 characters in the design matrix.  Thus RMark will fail if you use a model with an individual covariate name with more than 10 characters.

* If the design matrix is diagonal, then RMark will use MARK's shorthand notation for the DM.  This was necessary to achieve good starting values from the 
LogitNormalMR with the sin link.  See ?LogitNormalMR.

RMark 2.2.0 (23 June 2016)

NEW FEATURES

* I added the long requested feature that enables modification of design data as well as individual
covariate values for real parameter estimates.  See ?predict_real.  Any help testing this function would
be much appreciated.  

CHANGES 
* Modified mark.wrapper.parallel to use parallel instead of snow/snowfall to avoid dependency

* Added a check in make.mark.model to make sure rownames in design data (ddl) are in order.  If not it re-numbers them.

* Modified covariate.predictions to remove any failed models from the model list so model.average.list would work correctly. Also even though models were being dropped if drop=TRUE, unnecessary calculation was still being performed so this was stopped.

BUG FIXES

* PIM structure for RDMSOccRepro was not correctly constructed in the MARK inp file when there was more than one group. Thanks to Jim Hines for noticing and reporting this problem.

RMark 2.1.14 (14 Dec 2015)

NEW FEATURES

* Added Burnham live-dead model example provided by Luke Eberhart-Phillips (?Burnham)

* Added example of MS fish route data and code provided by Megan Moore (?skagit).

* Added Huggins model with random effects (#145), RD version (#146), RD2SpGEConOcc (#141) and relaxed Occupancy model (#144)

* Added UnId versions of mark-resight models (#158,#159,#160); added derived parameter for PoissonMR model

BUG FIXES

* patch to var.components.reml for test of intercept in random design (rdesign); thanks to Wolfgang Viechtbauer

* patched get.real to handle situations in which beta and design.matrix is specified; se or vcv set to TRUE is not allowed if beta is specified; thanks to Jeff Hostetler for reporting this issue.

* patched compute.real to properly handle fixed values in mlogit parameters.  This code was added in June 2014 version but apparently did not work with more than 9 strata and possibly other situations. Thanks to Tyson Wepprich who discovered error and patched code.

RMark 2.1.13 (3 June 2015)
--------------------------
CHANGES

* Thanks to Ben Cox who profiled the code which helped me make a change that significantly speeds up writing of input files with large data. As part of that changed I added an argument wrap which defaults to TRUE. If you have large data sets where each record is less than 255 characters set wrap=FALSE.

* covariate.predictions was changed so that the argument data is not required. If the model has covariates and values are not provided in the data argument, the mean covariate value is used for predictions.

BUG FIXES

* The function restore is now explicitly exported.

* A bug in covariate.predictions was introduced in the change for 2.1.10.  Incorrect values were being computed for mlogit parameters when covariate values were not used.  popan.derived used that approach and incorrect values resulted for the abundance estimates. Thanks to Leigh Ann Starcevich for reporting this discrepancy. A few other changes were made in covariate.predictions to prevent possible errors with mlogit parameters. If you are making the computations for parameters that use an mlogit link you must use the separate indices argument if you have individual covariate values. If you try to use the data=data.frame(index=...,cov=) approach with mlogit parameters and you have covariate values, the function will stop with an error.   Also, if you only include a portion of the indices in an mlogit set, it will also stop and issue an error and will tell you the set of indices that should be included for that mlogit set.  If you were allowed to exclude some indices the result would be incorrect because the real parameter values are computed by summing over the entire mlogit set.

* A bug in process.data was fixed that would incorrectly state that the robust structure was not correct in some cases with non-unit time intervals.  Thanks to Tomo Eguchi for finding and reporting this error.

* A problem with reading singular parameters from the output file was fixed.  These are the parameter indices that MARK identified and are stored in results$singular.

* A bug was fixed in model.table in which it would not complete if the first model failed to run.

* Real labels had 2 values of c (cohort) based on time and occasion. This was fixed.

RMark 2.1.12 (12 Mar 2015)
--------------------------
BUG FIXES
* Changed names of inp files to be all lower case to avoid problems on non-windows machines

* Incomplete reading of derived parameters has been fixed.  Models that have parameter f0 now have a derived parameter for N. 

CHANGES 
* added code to release.gof and mark.wrapper.parallel to return NULL if run on a non-windows machine

RMark 2.1.11 (10 Mar 2015)
--------------------------
BUG FIXES
* Fixed bad url in description

CHANGES 
* set threads=1 for any example that is tested on CRAN.

RMark 2.1.10 (10 Mar 2015)
--------------------------
NEW FEATURES
* added argument icvalues to mark and make.mark.model so individual covariate values can be specified in inp file for mark.exe to calculate real parameter values. Most useful in combination with setting of profile likelihood intervals.

CHANGES 
* code was added to popan.derived to provide cumulative summation of B_Gross over time for each occasion and its v-c matrix. The last occasion for each group is NGross for that group.
* extract.mark.output, mark, run.mark.model, mark.wrapper, and mark.wrapper.parallel were modified so that all messages are suppressed when silent=TRUE and if there was an error with the MARK run it does not pop open editor with the output file.
* strata.labels are checked to make sure that they are all single characters
* added explicit test to make sure file exists in import.chdata and convert.inp
* added checks to make.mark.model. If design data rows have been deleted a warning is given with directions to read the message in make.design.data. Also, the code checks to make sure the rows are in their proper order. If they are, the code stops.

BUG FIXES
* popan.derived was not handling loss on captures correctly because it was summing frequencies without taking absolute values. This was fixed in this version.
* bug in process.data was fixed which was incorrectly not allowing "2" in the capture history for some of the RBBarker models. Thanks to Thomas Riecke for finding and reporting the bug.
* bug in covariate.predictions was fixed in mlogit parameters were not handled correctly when multiple covariate values were provided. Thanks to Koen van Benthem for noticing that real parameter values for mlogits changed if more than one covariate value was given.

RMark 2.1.9 (6 Oct 2014)
--------------------------
CHANGES 
* For closed full likelihood models the parameter is named f0 instead of N

BUG FIXES
* Excepted mark-resight LogitNormal from check on all 0 capture histories because they are allowed for those models. Thanks to Brian Taras for pointing out the problem.
* Fixed bug in make.mark.model which could be fooled by when "initial " was found in a formula and it was expecting initial parameter values. Thanks to Christian Kampichler for pointing out the problem.


RMark 2.1.8 (26 June 2014)
--------------------------
NEW FEATURES
* A new return value was added to covariate.predictions which provides for each model a dataframe with the estimates and std errors for that model. Also, warnings are issued for parameters that have a negative or 0 variance. Those with a negative variance are set to 0. This same behavior was added to model.average.list.
* Time intervals are checked for robust design to make sure there are at least 2 secondary occasions per primary session.
 
CHANGES 
* Modified get.real to remove par.index and model.index from design data before appending to estimates to avoid multiple field names with same name/value
* Modified covariate.predictions to use model.average.list instead of its own code for model averaging which until now was not using the revised estimator for model averaged std error; this added arguments to covariate.predictions for model.average.list. Also, it issues informative errors about which parameters have negative std errors. Previously these were being set to 0 which caused problem with model average correlation matrix and caused these parameters to have lcl=ucl. This behavior has been fixed. This was only a problem with drop=FALSE.  
* mata.wald code was modified to allow se=0; previously it was testing se<=0 instead of se<0 for a negative se.
* If a variable assigned to groups argument is not a factor variable, a warning message is given and then it is coerced to factor. Previously the code would stop.
* If mark.exe fails the output file will be opened in MarkViewer (typically notepad) so the user can view the output file to discern the problem.
* Replaced cat function with message so user can suppress messages if they wish. Thanks to Roman Lustrik for the suggestion.
* If mlogit0=TRUE, any non-zero fixed mlogit parameter will now also be changed to logit. Previously this was only done with fixed 0 values.

BUG FIXES
* If digits were greater than 7 for continuous covariate in the data that was used in the formula, make.mark.model could fail when accumulating records. Unless accumulate=FALSE, records that have same capture history and covariates are collapsed into a single record and the frequency of the records with the same value is used for each group if any. This is done by pasting all the values which uses options()$digits in converting from numeric to character. The code was also using unique function on the data frame and this produced a different number of records due to extra precision and the code would fail.  This has been fixed but it is important to understand that the value of options()$digits controls the amount of accumulation with numeric covariates. Thanks to Rebecca Reeves for reporting this problem. Covariates rarely have that many digits but this occurred for Rebecca in copying data from Excel. One can always set accumulate=FALSE if there is a concern about this.
* In v2.1.6 a bug was introduced to model.average.list when the revised variance formula was added. When only std errors were provided instead of var-cov matrix, the se was not being pulled from x. The code should have failed unless you had a variable named se in your workspace. Thanks to Mark Herzog for tracking this down and reporting it.
* In model.average.list, if an estimated variance is negative it has always been set to 0, but now in constructing model averaged v-c matrix, the correlations with other parameters are set to 0 so infinite values are avoided when dividing by zero to construct correlation matrix. This had already been done in model.average.marklist but was missed in coding model.average.list.
* If non-zero fixed values were specified for mlogit parameters, the code in compute.real did not correctly compute the real parameter values. This has been corrected. Beware that MARK does not always ensure non-negative probabilities for the subtracted probabilities when fixing non-zero mlogit values with either setting of mlogit0. Thanks to Torbjorn Ergon for reporting this problem. 
* Corrected first 3 codes in MarkModels.pdf to reflect correct value for model argument.  Thanks to Mike Conroy for pointing out problem.  The first 3 use a name other than what MARK uses. What was previously listed was the code in MARK which corresponds to RMark other than those first 3.
* Function make.mark.model was modified to avoid appending time intervals together in the .inp file when there were many intervals or data was too long and spanned lines. This caused an error in MARK. Thanks to Thierry Chambert for finding and reporting this.

RMark 2.1.7 (15 Dec 2013)
--------------------------
NEW FEATURES
* added arguments allgroups, strata.labels, and counts to mark function which are passed to process.data.
* added support for RDMSOpenMCSeas model
* modified code in convert.inp so it would work with url
* added example LASP for MultScalOcc model; note change in MultScalOcc model below under changes

CHANGES 
* removed model list from documentation; currently supported models are listed in MarkModels.pdf
* fixed problem in mark which prevented use of retry with fixed parameters. Thanks to Tommy Garrison for reporting this problem.
* fixed make.mark.model so indices of singular parameters were correct with fixed parameters; thanks to Bret Collier for reporting this problem.
* in extract.mark.output code was added to handle very long model formula in extracting LnL. 
* in make.mark.model, code was changed to output data on multiple lines as in MARK interface; also model name truncated to 160 characters.
* added test in make.mark.model for duplicate names in the design matrix which should not happen. It reports the duplicated names with a message to contact me.
* modified structure of MultScalOcc model to match changes in MARK (Psi, Theta (primary), p(secondary); note that previous structure is no longer valid.
* modified parameters.txt for p parameter in RDMSOccRepro so time file would be numbered correctly. Also, changed definition of pent for all models except POPAN such that it aligns with MARK in that the last pent is computed by subtraction. This just changed values for design data.

BUG FIXES
* Fixed a serious bug in make.mark.model which was passing individual covariate data out of synch with the variable names when there were more than one individual covariates used in the formulas and they same covariates were used in multiple formula. Thanks to Jonathon Cohen who reported a discrepancy when the model was exported to MARK, re-run and the results were different because MARK passes all covariate data to the inp file in the same order for all models.
* Fixed bug in make.design.data which removed time,age from pi parameters that were not mixture parameters.

RMark 2.1.6-1 (20 Aug 2013)
--------------------------
* fix for CRAN - removed use of :::

RMark 2.1.6 (20 Aug 2013)
--------------------------
NEW FEATURES
* Addition of RDMSOccRepro model with changes to create the unique model structure. Also added REDead (Seber recovery with random effects),PMDead (Seber recovery with Pledger mixtures), BurnhamLDRE (Burnham Live/Dead with random effects).
* added brownie example using San Luis Valley mallard recovery data.
* silent argument now also suppresses messages from mark.exe if set to TRUE
* expand argument added to get.real to control whether the complete var-cov matrix is returned (expand=T) or only the var-cov of the unique parameters (expand=FALSE; the default)
* parameters can now be fixed at a real value by adding a column named fix in the design data which contains NA if parameter is to be estimated or some value at which it is fixed. Please begin to use this instead of deleting design data which does not work in all circumstances. Note that you can override or add more fixed values for a specific model by using the fixed element of the parameter specification. 
* in make.mark.model, if it finds duplicate indices to fix a parameter value it uses the latter one and issues a message. This will be the same behavior as previously because they would have both been written to the MARK inp file and MARK uses the latter one. The message was added to make the user aware in case it was unintended.
* checks were added to process.data to make sure both ch(character) and freq (numeric) have proper values to avoid problems with data input.
* create.model.list modified to make user aware when no specifications are found that default formula is used for parameter.

BUG FIXES
* Fixed a problem in make.mark.model. If share=TRUE and non-default link function was specified, the link function for the shared parameter (eg c in closed model) was not changed resulting in different real parameter values for the shared parameter even though beta(s) were the same for the 2 types of parameters (eg p and c).
* Fixed a problem in model.average.list which was always using the non-revised variance formula for model averaging when the var-cov (vcv) was not specified. Thanks to Kristin Van Katwyk for reporting the discrepancy. The error does not affect model.average.marklist which is used for model averaging real parameters from MARK runs.
* Fixed a problem in get.real that would fail if mixtures > 2 in displaying results for certain model parameters.
* Renamed GammaPrime to aPrime and GammaDoublePrime to aDoublePrime in parameters.txt for Robust Design Barker models.

RMark 2.1.5 (28 Mar 2013)
--------------------------
NEW FEATURES

* argument mata and associated arguments were added to model.average.list and model.average.marklist to enable calculation of confidence intervals based on Turek, D. and Fletcher, D. (2012). Model-Averaged Wald Confidence Intervals. Computational Statistics and Data Analysis, 56(9), p.2809-2815. Daniel Turek provided the function mata.wald.  In model.average.list the mata.wald function is applied to the estimates without any transformation if mata=TRUE.  In model.average.marklist, the confidence intervals are applied to the estimates in the link space and then the end points are transformed to the real space.


CHANGES

* Modified code in extract.mark.output to allow = sign in formula for use of splines which was suggested by Alexey Altukhov and Eli Gurarie. An example is mark(dipper,model.parameters=list(Phi=list(formula=~bs(Time,df=3)))). splines package must be attached.


BUG FIXES

* modified release.gof which was not connecting to rel32.exe unless MarkPath was specified

* modified model.average.list which failed if var-cov matrices were provided for single estimates. Thanks to Alex Zerbini for discovering this problem.

* modified make.design.data so it did not create session.labels except for secondary parameters

* fixed bug in process.data which was always using age.unit=1 if there was not an age group.


RMark 2.1.4 (11 Dec 2012)
--------------------------
CHANGES

* threads option for MARK was moved from inp file on proc chmatrix to run command; requires newest version of mark.exe

* accumulate was added as an argument to control whether records with same values are aggregated
		
NEW FEATURES

* Code written by Ben Augustine was added to var.components to compute conf limit on process variance, shrinkage estimates and trace of G. Code was made a little smarter about finding end points for uniroot to compute process variance. Result now contains sigmsq (old sigma) with confidence interval and sigma, the sqrt of sigmsq estimate set to 0 if sigmasq<0

* Modified parameters.txt so F and FPrime in Barker model can be shared.

* A new example deer was added by Bret Collier that explains the share argument in parameter (model) specifications and gives an example for closed capture model.

* A new example for POPAN with data on white-winged doves was added by Bret Collier.

BUG FIXES

* Fixed bug in make.design.data that was improperly labeling session values for secondary parameters when the time intervals between primary sessions were not 1. Thanks to Shannon Knapp for finding and reporting this problem.


Mark 2.1.3 (18 June 2012)
--------------------------
		
NEW FEATURES

* Added aggregation of data in make.mark.model to reduce number of capture histories that mark.exe must process in calculating likelihood. Records that have the same ch, covariates and group membership are tallied in the frequency for that group and record.

* Added argument hessian to functions mark and make.mark.model to specify use of hessian rather than second partial matrix for v-c matrix by mark.exe.


RMark 2.1.2 (8 June 2012)
--------------------------

NEW FEATURES

* Added function create.mark.mcmc to read in mcmc binary file from MARK for analysis with coda package. If you download this from the github site, make sure to install coda separately. Also, to use codamenu to analyze the results you'll need to install lattice package.
 
* Made changes for new gfortran versions of mark which include mark32.exe and mark64.exe. If there is a mark.exe it will use it so you can force the use of 32 or 64 bit by renaming mark32 or mark64 to mark; otherwise if running from 64 bit R it uses mark64.exe and from 32 but R mark32.exe

* For Windows will search both Program Files and Program Files (x86) for mark executables so no need to set MarkPath unless it is not in one of those directories and not in your Path.

* The addition of mlogit0 argument in 2.1.1 was useful to reduce number of real parameters when many mlogit parameters are fixed at 0; however, it was retaining betas that were no longer needed.  These have been removed in this version.

* An argument threads was added to mark and make.mark.model to take advantage of the multiple cpu capabilities of the new mark exes. If positive, it specifies the number of cpus to use and if negative the number of cpus to remain idle. The default is -1 which uses all but one cpu.
 
* One of the side effects of the new mark executables is that setting invisible=FALSE in the Rgui will no longer work to show the iteration counter in a window. Instead regardless of the value of invisible, it creates a file fort.0 which contains the output and you can check on its progress. The fort.0 file is deleted after completing the run. I recommend using Rterm if you are going to use mark.wrapper.parallel because I'm not certain what will happen with parallel runs all using fort.0. If you run it from rterm then using invisible=FALSE will allow you to monitor the progress. The previous version of mark.exe using the Compaq compiler will work with this version of RMark but setting invisible=FALSE does nothing. 
 
* Default formula for CRDMS was changed to ~session from ~1 for N. 
 
* Functions find.possible.transitions and transition.pairs were added.  These can be useful for examining transitions in MS models. See help for an example.
 
* Added pim.type="age" to allowable values for pims in make.design.data. Now all pim types can be created: all, constant, time and age
 
* Added functions splitCH and collapseCH which can be used to split a vector of character strings into a matrix and collapse a matrix into a vector of character strings.
 
* Fixed bug in make.mark.model which did not allow a 2 in ch for RDBarker model. Thanks to Claudia Penaloza for reporting this problem.


RMark 2.1.1 (3 May 2012)
--------------------------

NEW FEATURES

* In extract.indices, parameter and df can be NULL and all indices are provided for a parameter (df=NULL and parameter specified) or all parameters if parameter is NULL.
 
* In make.mark.model, the simplify argument was added back but only for building a model and not running it.

* In make.design.data, par.index and model.index are now added to the design data. par.index is a numeric row number within the parameter and model.index is the unique index across all parameters. par.index can be used in place of as.numeric(row.names(ddl[[parameter]]) in the various examples.

* In concert with above change two new arguments parm.specific and input.links were added to make.mark.model and mark.  These are useful for user specified link functions vary within a parameter. See end of help for ?dipper for an example.

* Added code to make.mark.model that sets link to Logit for Mlogit parameters that are fixed to 0. This should make these types of models run far more quickly because the number of real parameters will be reduced. This code will only run if the argument mlogit0 is set to TRUE.  Some beta values of the mlogit parameters may change but the real estimates should remain the same. Thanks to Gary White, Glenn Stauffer and Bret Collier with their help. 
 
BUG FIXES

* Fixed bug in make.mark.model for mlogit specification with pi and Omega parameters in RDMSMisClass models with more than 2 observable strata.  Thanks to Claudia Penaloza for reporting this problem.

* Modified values in parameters.txt to enable model RDHFHet to work. Thanks to Darryl McKenzie for reporting this problem.

* Removed one of the example models in edwards.eberhardt because it does not converge with the Feb 2012 version of mark.exe. It was a poor example giving a very large N with previous versions of mark.exe

* Function collect.model.names is now exported.

* make.mark.model will now issue an error and stop if any covariates are not unique within the first 10 characters which is a MARK limit.

RMark 2.1.0 (27 Jan 2012)
-------------------------

NEW FEATURES

* In process.data the restriction of having only one non-unobservable state for robust designs was removed but a note is still issued when this occurs. 

* Also, in process.data a warning is issued if you specify more than one value in the vector for initial.ages but an age variable is not identified in the groups. 

* A "." is now allowed in Royle count occupancy models.

* An argument run was added to mark function which if set to FALSE will not run the model after it is created.  

BUG FIXES

* Patch was made to run.mark.model so that a filename can be specified to pick up orphaned MARK output files for a model that was run but not saved. This used to work but when I added code to allow user-specified prefixes (ie something other than marknnn) the change I made broke the other feature.  Thanks to Kelly Hastings for bringing this to my attention.

* Patch was made to make.mark.model to allow design data to be deleted on shared parameters. Thanks to Claudia Penaloza for reporting this issue.

RMark 2.0.9 (1 Dec 2011)
-------------------------

* For changes in v2.0.9 or earlier, see Whatsnew in the RMark help file.