RMark 3.1.0 (24 July 2026)

CHANGE

* Check was added to release.gof which will stop if number of occasions is 3 or less.

* Locations of documentation were added and changed that are given when package is loaded with library function.

* if invisible==TRUE as run option, then batch is added to mark.exe execution and output window is not opened and output set to FALSE.

* Maintainer for RMark has been changed from Jeff Laake (jefflaake@gmail.com) to Simon Bonner(simon.bonner@uwo.ca) and URL and BugReports are set to his RMark repository on GitHub.


RMark 3.0.8 (12 June 2026)

CHANGE

* URL and BugReports added to Description

* In prior version, if MARK executable was not found then it would stop which prevented building the package. Now it uses packageStartupMessage and continues.

RMark 3.0.7 (28 January 2026)

CHANGE

* System requirements and readme.txt changed to indicate that version 11.2 posted 25 January 2026 is needed to obtain version number from MARK.

* in loading package, it will check to see if version number is provided by MARK. If it is an older version it will simply request that you update MARK but will load. In the future it will stop if reported version number is less than required version.


RMark 3.0.6 (12 January 2026)

BUG FIXES/CHANGES

* patched extract.mark.output which was not handling reading covariate names and values in the MARK output file where the covariate name was longer than 10 characters.  Thanks to Joe Ceradini for bringing this to my attention.

* patched make.mark.model to exclude time intervals unless they were specified for the model. When there were no time intervals including time interval; was causing MARK to fail on some of the mark-resight models and possibly others that I'm unaware of. Thanks to Adrian Schiavani and Jesse Lewis for bringing this problem to my attention. 

* run of mark in NSpeciesOcc was commented out so it would pass test on Linux for CRAN. My guess is that the Linux version of MARK on CRAN is old.

RMark 3.0.5 (24 March 2024)

BUG FIXES/CHANGES

* added check to popan.derived to stop function if there are any losses on capture (freq=-1) because the code does not support it and results will not match that of MARK. Use derived parameter results instead from MARK.

* added examples for MSJollySeber (?MSJollySeber) and Hidden Markov (?HidMarkov) which were promised in v2.2.9 but for some reason were not included.

* fixed pim header construction for pi in make.mark.model for MSJollySeber model. Was not working in all situations.

* removed limit of 10 character covariate names because it was removed from MARK

* modified model.average.list to set NaN estimates in vcv to 0 and issue a warning. Previously this would cause the code to give an error message and stop.

RMark 3.0.4 (3 October 2023)

NEW FEATURES

* added model RDMSOpenMCSeas2 which has same structure as RDMSOpenMCSeas and at the same time corrected parameter Phi to have a single PIM value rather than time dependent.

RMark 3.0.3 (28 August 2023)

BUG FIXES/CHANGES

* Modified Psi parameter in parameters.txt file for RDMultScalOcc model so it only produces a PIM with only one value instead of time dependent.


RMark 3.0.2 (28 August 2023)

BUG FIXES/CHANGES
* output format in MARK output file was changed and my grep statement wasn't very clever in extract.mark.output so it wasn't picking up covariate values which caused problems in computing real parameters without specifying covariate values. It is now much smarter. Thanks to Brian Folt for bringing this to my attention.

* the code in make.design.data to create the primary field in p design data for the RDMultScalOcc model was not correct when the number of secondary occasions was unequal across primary occasions. This has been fixed. In the case reported the code failed in make.design.data but it is possible that function could succeed and the PIM structure may have been incorrect. Not sure what would happen inside MARK. Hopefully no one got bad results with this bug. Thanks to Reed Scott and Brittany Mosher for reporting this problem.


RMark 3.0.1 (22 June 2023)

BUG FIXES/CHANGES
* parameters.txt file was changed so that R and Rprime in Barker model can be shared parameters.  Also, length of Fprime in that model was reduced by 1 to have the correct length.  This didn't affect model runs but precluded importing models into MARK interface. 

* drop=FALSE was added to two places for beta.vcv in model.average.marklist to handle single parameter models. Further changes were needed and thanks to Samuel Vassallo for bringing this to my attention.

* changes were made to predict_real to handle models with more than one link type (e.g. multistrata) and a variety of conditions that were not anticipated.  Thanks to Nathan Bendik for bring the problems to my attention.


RMark 3.0.0 (10 August 2022)

NEW FEATURES

* not exactly a new feature but the default value for mlogit0 argument to mark function is now TRUE and cannot be set to FALSE. This is a departure from previous versions and one of the reasons I incremented the major version number.  This probably should have been set as TRUE all along because it will make the code faster because it pulls the fixed 0 mlogit values out of the mlogit sum.  This change was brought about because of a problem identified by a user in the way MARK was calculating mlogit sums with fixed values (http://www.phidot.org/forum/viewtopic.php?f=21&t=4255). MARK has been corrected but I think it wise to set mlogit0=TRUE anyhow because the execution time can be reduced substantially. Also, if you have many 0 mlogit values it can make large multistrata models use less memory because it reduces the number of real parameters through PIM simplification which is not possible if the mlogit fixed values are maintained in the mlogit sum. 

* likewise, remove.unused=TRUE is no longer allowed and is forced to be FALSE. Also, I'm not allowing deletion of design data which in retrospect was a bad idea. While it can still work for some situations, deleting design data can cause problems with mlogit parameters which are summed over a set. The reason for deleting design data was to quickly set those parameter values to the default fixed values for any deleted design records. This is just as easily handled by using a fix value in the design data. In previous versions, I just warned the user about the problem but I think it best to simply remove this option. This is a departure from previous versions and one of the reasons I incremented the major version number.  As a result, the argument reverse for multistrata models is no longer allowed because it required deleting design data.

BUG FIXES
* importing the binary file (markxxx.vcv) from MARK began to fail under R version 4 and above due to changes in R. Jim Hines very kindly provided the code in function readMarkVcv as a replacement for read.mark.binary. I modified slightly to include labels on derived parameters.

RMark 2.2.9 (13 Sept 2021)

NEW FEATURES

* added model MSJollySeber with example of simulated data courtesy of Gary White.

* added example of HidMarkov model courtesy of Chris Oosthuizen which he posted to phidot forum.

BUG FIXES
* in extract.mark.output a warning message started to appear with version R4.1.0 about specifying as.is in type.convert.  This is now specified so the warning will no longer appear.  This was not affecting any results.

* another problem occurred with R4.0 in compute.design.data for some models with parameters like pi in HidMarkov for the strata.labels. Previously R translated a number represented as a character as a number when used as an index. Presumably this no longer works. The value was wrapped in as.numeric to avoid the error. This also fixed the problem whereby use of subtract.stratum was not working for pi.

* code added for mata confidence intervals in model.average.marklist never worked for parameters other than the one listed first in the model because of incorrect indexing to vcv.real.  It would thrown an error and stop. Thanks to Nathan Bendik for pointing out this error. Sorry it took me a year to get to it Nate.

* another issue Nate pointed out was that with mata=TRUE, confidence intervals could exceed 1 from covariate.predictions. This occurred because the code was using model.average.list which does not have any assumptions about links.  The code in covariate.predictions was modified to compute mata intervals on the link space (as done in model.average.marklist) inside the function rather than with model.average.list.


RMark 2.2.8 (13 October 2020)

BUG FIXES
* extract.mark.output uses the readChar function which gives a warning message if an embedded NULL is encountered while reading starting with R4.0. Oddly, the documentation says that this should have occurred starting with >R2.8 but it is now just occurring with R4.0.  I have suppressed the warnings since readChar values are not used.

* in v2.2.7 a check was added for an infinite variance-covariance element and abs was used which created error when it was infinite. Was in get.real, covariate.predictions and model.average.marklist.  abs was removed.

* fix to example in utility.r for pop.est function (byrow=TRUE). Thanks to Sima Usvyatsov for finding and reporting the error.

* fix to Psi parameter in RDMultScalOcc which had too few PIM values.

* in version 2.2.2 a test was added for an identity design matrix in make.mark.model.  The logical condition was not correctly specified and was causing large problems (mostly multistate models with lots of groups and occasions) to fail due to lack of memory.  The error has been corrected here. Thanks to Ellen Robertson for bringing this to my attention.

* if all subtracted strata were the same in a multi-state model, this caused an error to occur in TransitionMatrix.  This has been fixed.

CHANGES

* error trap added in make.mark.model which stops you from using share=TRUE with the fixed argument set because it will not work. An example is given to specify fixed in this case with shared parameters. This affected the crdms example.

RMark 2.2.7 (4 November 2019) 

NEW FEATURES

* added Paradise_shelduck example of multistate live-dead model courtesy of Richard Barker.

* added capability to set subtract.stratum for pi and subtract.events for Delta with HidMarkov models. The subtract.stratum for pi has a value for each event and subtract.events for Delta has a value for each stratum that can either be the stratum value or one of the events.

* added support for RDMultScalOcc model. Thanks to Connor Wood and Gary White for providing examples to test.

* added support for RDMSOccupancy model. Thanks to Wendy Lanier for help in figuring out the model parameters and providing a test example.

* added a check.model argument to make.mark.model.  This argument is primarily for my use when adding models. It checks to make sure ordering of PIMs is consistent with the design data order.  I had the order incorrect initially when adding the RDMSOccupancy model and it made me realize I should have this in the code.  No problems were discovered in running all of the examples in the package.  I have set the default value to FALSE but if you want to check a model type that doesn't have an example in the package, set to TRUE.  Don't panic if it flags an error as I did when I first ran it. The code doing the testing may not be perfect and was initially giving false errors. But please do let me know if you encounter any problems. 

* alpha argument in covariate.predictions was orginally intended just for mata-wald confidence intervals but it has been extended to be used with regular confidence intervals as well.  The value 1.96 has been replaced with qnorm(1-alpha) and the default value of alpha=0.025 will give the same(very close) result as previous use of 1.96 for 95% confidence intervals.

CHANGES
* Jay Rotella updated the mallard example to use mark.wrapper approach to fitting a set of models.

BUG FIXES

* in var.components a bug was fixed in cases where a non-intercept design was specified.  Thanks to Joshua Goldberg for finding error and providing fix.

* if data is in tbl format, an error occurred for nest data. Now anytime a tdl_df is passed to process.data it is changed into a standard dataframe for processing.  Thanks to Carl Schwarz for bringing the problem and solution to my attention.

* get.real was inconsistent about what it returned. If vcv=FALSE it returns N because it takes the results from the MARK output. If vcv=TRUE, it returns f0 because the estimated parameter is actually f0 even though MARK refers to it as N and RMark works with the actual parameters and not derived values.  I have chosen to let this problem remain because it would take some specific coding just for this parameter in get.real. To convert to N, simply add the number of animals caught to f0 when vcv=TRUE. I have added a warning message. Thanks to Carl Schwarz for bringing the problem to my attention. 

RMark 2.2.6 (4 February 2019)

NEW FEATURES

* In collect.model.names code was changed to accept a vector of models (type) to be included rather than a single value or all models in the workspace.  Great suggestion by Carl Schwarz.

* Added example for Densitypc model developed by Jake Ivan.

* Added NSpeciesOcc model (data type 177) and an example with same name and added RDMultScaleOcc model (data type 175)

CHANGES
* Brett McClintock made changes to process.data to allow '*0' entries in zero-inflated Poisson mark-resight models to indicate marked individuals known to be alive but unobservable (e.g. due to temporary emigration) when the number of marks is known

BUG FIXES

* shared submissive parameters in model RD2SpGEConOcc were patched in v2.2.1 but one was missed which was astutely found by Carl Schwarz. It is patched here.

* For Density models (Densitypc,DensityHet,...), the TotalLocations and TotalIn fields were swapped and an extra proc chmatrix was added which prevented models from running. Thanks to Jake Ivan and Eric Newkirk for identifying the problems. 

* Made change to Psi parameter definition in parameters.txt for MSLiveDead. This error was brought to my attention by Andrew Allen.

* Made change to export.MARK to correctly export MultScaleOcc models.

* Made change to export.MARK and export.chdata to correctly export Density models.


RMark 2.2.5 (10 July 2018)

NEW FEATURES

* Added model HidMarkov that is now in MARK; this requires user to specify the strata.labels and events arguments in process.data.

* nodes argument added to mark to control integration for random effects; default of 101 nodes used which is default in MARK; code from Brett McClintock

* added contrasts argument to model parameter specification so contrasts can be adjusted for various factor variables in a formula. Thanks to Evan Cooch for suggesting this need.

CHANGES 
* In make.mark.model, if ddl is complete (no records deleted) then the ddl is used if argument useddl=TRUE, rather than the full.ddl which was created to handle purposefully deleted records to assign the default value.  Deleting ddl records was added but I recommend against it because it can cause problems with mlogit link.  By using ddl instead of full.ddl, you can change the labels used for the time factor variable in ddl. In full.ddl they are always the default values using begin.time and time.intervals.  However, when you use decimal times this becomes problematic if you want to use a time-vaying individual covariate which has names limited to 10 characters.  Now you can change the labels to something that can be used as long as you don't delete records in ddl. However, you can't assign the same time, session, cohort, age, group values to rows in the design data because these are used to label rows of the design matrix.

* in process.data changes made for mark-resight models to allow all 0 encounter history; code from Brett McClintock

* derived parameters added to derivedpar.txt for mark-resight models; from Brett McClintock

* argument ... passed from rerun.mark to make.mark.model so any argument for that function can be passed to it from rerun.mark.

* Updated list of derived parameters to match changes in MARK for supported models. Thanks to Carl Schwarz for discovering this problem.

BUG FIXES

* If a marklist was passed to popan.derived, the returned value of N.vcv was incorrect. This did not affect any other quantities.  Thanks to Sima Usvyatsov for discovering the problem. 

* If there were all 0 rows in the design matrix and there were fixed parameters, the rows that were all 0 were improperly listed.

* shared submissive parameters in model RD2SpGEConOcc were patched in v2.2.1 but one was missed which was astutely found by Carl Schwarz. It is patched here.


RMark 2.2.4 (7 Aug 2017)


CHANGES 
* removed url's to mark because they keep changing. Included address to phidot for mark.

RMark 2.2.3 (4 Aug 2017)


NEW FEATURES

* Added models ZiUnIdPoissonMRwithin,PoissonMRacross,UnIdPoissonMRacross,ZiUnIdPoissonMRacross

BUG FIXES

* patched parameters.txt file for models RDOccupPE,RDOccupPG and RDOccupPG. Some values for pi and p were incorrect. 

* added stringsAsFactors=FALSE to conversion of DM to dataframe in make.mark.model which was preventing models with shared parameters to fix real parameter values in some cases.

* patched names of PradSen, PradLambda and PradRec in models.txt which were not capitalized properly and didn't match MARK and prevented import. Thanks to Bryan Hamilton for reporting problem.

CHANGES 

* in model.average.list if the list of v-c matrices are all vectors of length 1 then convert to matrices of 1 row and 1 column; this copes with Ngross being a single value in popan.derived

* added new derived parameters to ORDMS model

* added check to process.data to make sure strata.labels are characters. If set as numeric values (e.g. strata.labels=1:4) bad things can happen. You can use numeric values but specified as characters strata.labels=as.character(1:4).

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 help("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 help("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 (help("Burnham")")

* Added example of MS fish route data and code provided by Megan Moore (help("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 help("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.