Changes to package DoE.base

This package is still under development. 
Suggestions and bug reports are very welcome. 

Version 1.2-3, October 2023
- Changes prompted by CRAN requests or check notes:
  - modified default title in halfnormal to use plotmath instead 
    of unicode alpha character
  - added alias for generators.character

Version 1.2-2, May 2023
- Changes prompted by CRAN requests or check notes:
  - changed encoding to UTF-8
  - removed escaping from two instances of ^ in block.catlg.Rd
  - shortened lines in lowerbound_AR.Rd
  - separated GWLP.Rd into the exported and internal part
  - solved issue arising from levels.no being seen as a method for base::levels:
    - commented out the usage line for levels.no
    - added a check for class "no" that leads to an error message
    - registered levels.no as an S3 method, because otherwise I get an error
  - updated URLs

Version 1.2-1, May 2022
- updated web address and mail address
- fixed add.response Rd file regarding empty item entries

Version 1.2, September 2021
- GWLP treated kmax as a dogma even for designs with fewer factors;
  replaced kmax with number of factors in GWLP in order to fix the bug in 
  corrPlot (see below) - 
  this impacts code that relies on length kmax + 1 for the output from GWLP 
  and is applied to designs with fewer factors (that code would have thrown an 
  error otherwise, and will need post processing of the result now)
- made it unnecessary to specify nlevels in addition to nfactors in oa.design, 
  if a symmetric OA is explicitly requested with the ID= argument, 
  or if all columns of a specified OA (ID=) are used 
- oa_feasible now optionally returns the number of runs required for an oa 
- function plot.design now plots the first four factors only, if called 
  without any specification of "select" on a larger design
- moved the VFGFS data set to the data folder in order to make it 
  more visible as a data set that accompanies the package
- enhanced documentation of arrays to separately identify different strengths
- extended oacat3 by additional arrays of at least resolution IV
- made sure that all arrays have rownames from 1 to nrow (prevents a warning 
  for the stronger arrays from the Agrawal Dey constructions that had non-unique
  rownames before)
- bug fix: L372.2.40.8.2 is in fact L384.2.40.8.2
- bug fix: corrPlot worked for designs with at least five factors only. 
  Properly handled the case of fewer factors by adjusting function GWLP
  to reduce a too large value of kmax and post-treating a too short 
  GWLP result in corrPlot

Version 1.1-6, February 2021
- handled cross references in Rd files to avoid notes in 
  R CMD check: 
  - replaced cross references to sfsmisc and planor documentation 
    by code for calling help from within R (in order to avoid mentioning
    those packages in the Description file)
  - removed cross reference to package DoE.MIParray for the same reason
  - added packages FrF2, DoE.wrapper to the Suggests field, 
    because of many cross references to their documentations
  - updated URLs to https, and updated to doi markup 

Version 1.1-5, April 2020
- modified generators.design to also properly cover 
  blocked designs created by function FF_from_X
- modified generators.design to cover designs with more than 50 factors
  also for the blocked case (i.e. where factor names default to F1, F2, ...
  instead of Letters)

Version 1.1-4, March 2020
- modified generators.design to also give valid
  information for regular fractional factorial designs 
  that are based on full factorials
- added stringsAsFactors=TRUE to expand.grid, data.frame and cbind
  in function fac.design
- removed oa and design from usage sections 
  of respective Rd files, for avoiding warnings
  in R-devel
- set example for export.design to \dontrun
  in order to avoid a note about non-standard files

Version 1.1-3, May 2019
- modified function print.oa in order to suppress 
  all non-standard attributes per default

Version 1.1-2, May 2019
- added information on reproducing old randomizations 
  with R versions 3.6-0 and later 
  - to the documentation of all functions affected by the 
    new default RNGkind for function sample, 
    under argument "seed" and in the section "Warning"
    (functions oa.design, cross.design, fac.design, 
    rerandomize.design), 
  - to the documentation of the class design under 
    design.info elements seed and creator, 
    and in section "Warning"
  - to the documentation of the VSGFS data frame, 
    in the example code that reproduces the design
    and in the Details section.
- further small fixes in the documention
- added an argument "version" with default 2 
  to function export.design, in order to ensure 
  that exported designs can still be read in 
  R versions 3.4.x and lower; the default may change, 
  once R versions below R 3.5 can be considered rare.
- changed the test output to reflect the R 3.6-0 behavior 
  of function sample

Version 1.1-1, August 2018
- added information example to documentation of oacat3

Bug fix:
- new arrays exported

Version 1.1, August 2018
- made show.oas always show strong arrays, if these exist
- use strong arrays automatically in oa.design, if possible
  (this changes the design created for some situations, 
   for which an array ID has not been specified)
- added an option for creation of all non-isomorphic replacements 
  to the expansive.replace function (if replacement array 
  is a small full factorial)
- added an import from package partitions, in support for previous bullet
- added three strength 3 arrays from the Aggrawal/Dey 
  construction method 2 (found fix for wrong formula in their paper)
- deactivated message on column order optimization for cases for which 
  the default column order is known from the literature to have GMA
  (Butler 2005); this involves adding columns gmarule and sgmarule 
  to oacat

Bug fix:
- fixed level coding of some arrays listed in oacat3, 
  which were coded from -(s-1) to (s-1) in steps of 2, rather than from 1 to s
  (affects all arrays from the Aggrawal/Dey construction)

Version 1.0, June 2018
- added CITATION of JSS paper
- reentered link to documentation of planor, 
  which is on CRAN again
- added caveat to the documentation of the lower bounds functions 
  that resolution needs to be ascertained before applying these
Bug fix:
- fixed function SCFTs (a necessary instance of break 
  had been removed with version 0.32, which made 
  the output of function SCFTs ugly under option all=TRUE)

Version 0.32, March 2018
- added function lowerbound_AR (based on hidden functions 
  lowerbounds and lowerbound_chi2) that calculates a best possible A_R
  for a combination of nruns, nlevels and resolution;
  the functions were originally in DoE.MIParray only
- added function oa.min4 that optimizes column allocation 
  in resolution 4 designs without the need to first go through 
  all triples as well
- incorporated best possible A_R ("target") into
  functions oa.min3 and oa.min4 in order to speed things up
  when searching for small designs within relatively large designs, 
  if only a single array is sought and the best possible 
  array is reached fast
- replaced function oa.maxGR with 
  oa.min3 and oa.min4 using rela=TRUE and crit="worst", where possible
  (much faster)
- updated a reference
- modified description
- added a link to package DoE.MIParray
- removed link to documentation of planor (as planor was archived)
Bug fix:
- removed two useless instances of "break" (functions halfnormal and SCFTs)

Version 0.31, August 2017
- added function oa_feasible that tests necessary conditions 
  for the feasibility of a request for a combination of nruns, 
  nlevels and strength
- added an S3 method for class oa for the generic function print
- added factor level recognition to levels.no
- modified print methods to be more reactive to line widths
- updated references in help files to reflect 
  latest published research results 
  (help files GRind, ICFTs, oa.design, generalized.word.length, 
  and DoE.base-package)

Version 0.30, March 2017
- modified get() to not request package:DoE.base in function getArray 
  (file utilities.for.children) in order to make importing DoE.base possible. 
  Users who want to use function oa.design inside their package without depending 
  on DoE.base will have to write their namespace file such that it 
  imports package DoE.base, possibly excepting some non-needed functions,
  and that it *exports* the arrays (L...) and the function contr.XuWu. 
  Exporting must happen *after the import*. 
- modified function ICFT to force all columns of matrix U to non-negative 
  column means, and add coding invariant coefficient vector c.worst 
  to output list

Version 0.29, September 2016
- added a function corrPlot for overview diagnostic plots of the confounding 
  structure of (possibly mixed level) fractional factorial designs, 
  including also the possibility to investigate confounding with run order
- added a function P2.2 and modified function tupleSel 
  to work for resolution II designs as well
- added an option showGRs to function show.oas
- added two experimental functions ICFTs and ICFT for interaction contributions, 
  as will be described in a future technical report
- added hidden auxiliary functions rect_simplex and HouseholderRotToOne for 
  supporting the ICFT functions
- Bug fixes: 
  - rerandomize.design did not always update the run.no column in the run.order 
    attribute and the row names of the design
  - the block factor in designs created by fac.design did not have enough 
    levels in case of between blocks replication
  - plot.design behaved inappropriately if factor names and factor letters 
    partly coincided; this has been resolved by always giving precedence 
    to factor names.
  - actually did what was claimed for version 0.28:
    modified the column "regular" for oacat to reflect non-regularity 
    that occurs in full resolution sets of more than the overall resolution 
    columns (see Grömping and Bailey 2016), and fixed the documentation 
    for this aspect

Version 0.28, March 2016
- added a function expansive.replace for combining two arrays by 
  expansive replacement
- modified the column "regular" for oacat to reflect non-regularity 
  that occurs in full resolution sets of more than the overall resolution 
  columns (see Grömping and Bailey 2016)
- added 31 strength 3 and stronger OAs, 
  and collected info on them in an additional data frame oacat3 
  (where the three already present stronger arrays are also listed)
- added an option to function show.oas for requesting a resolution larger than 3
- Bug fixes:
  - for function SCFTs: 
    combination of kmin and regcheck did not work as intended
  - for function cross.design: removed a superfluous and wrong 
    (but inconsequential) rownames argument to an as.data.frame call 
    (thanks to Bill Dunlap for spotting this)
  - for function paramtowide: corrected a column name specification 
    in a reshape call on the rn order data frame ro 
    (luckily inconsequential for the correctness of the reshaped order;
    again, thanks to Bill Dunlap for spotting this)

Version 0.27-1, 21/08/2015
- improved documentation for function GRind
- added class GRind to the GRind output
- added a print method for class GRind
- lowered required resolution for GRind to 2
- added a function SCFTs for more detailed analysis of squared canonical correlations
  and average R^2 frequencies, and for regularity checking
- bug fix for data2design: sapply -> lapply for making it work properly for symmetric designs

Version 0.27, 29/03/2015
- modified the blocking facility for full factorial designs to 
  yield better designs in case there are factors with 2^a or 3^b levels
- extended error messages to more accurately reflect the limitations of 
  automated blocking for function fac.design
- added labeling to the block.gen component of the design.info object 
  of blocked full factorials (does not overwrite existing names of custom 
  block.gen matrix)
- added pseudo factor numbers of levels to the design.info object
  of blocked full factorials
- added generator information to design.info also for planor designs
  (unmodified designkey attribute stored in element generators)
- added columns to the oacat data frame for supporting more informed choice 
  of starting designs for column selection 
- modified function show.oas 
  - to allow selection based on the new columns regular, regular.strict, and GR    criteria, 
  - to display quality metrics on request 
    by new option showmetrics
  - to consequently use the word "array" instead of "design" in function output    and documentation
- made it the default behavior of factor.names to add factor levels 
  in the order of the factor.names element of design.info 
  (added option to switch to old behavior, where needed)
- made it the default behavior of oa.design to assign factor levels 
  in the order specified in factor.names (fac.design always did)
  (added option to switch to old behavior, where needed)
- made function lengths generic with methods for classes design and matrix, 
  and a default method that is the new base function lengths for R versions from 3.2;
  note that this change is defensive, i.e. considers not breaking user expectations 
  regarding the behavior of base functions a high priority: 
  using the package function lengths on a data frame without class design 
  now requires explicit use of DoE.base:::lengths.design; 
  this choice has been made, given that application of lengths to such data frames 
  is expected to be rare and function GWLP can do a similar job for most purposes
- modified function rerandomize.design to allow randomization w.r.t. a block 
  factor after design creation with function oa.design or pb
- adapted test outputs to new masking message from new base function lengths
- modified function GRind to ignore non-factor columns in class design objects,
  to gain an optio with.blocks (default FALSE), 
  and to throw an error for designs of resolution less than 3
- added the data frame VSGFS as an example for use of an optimized 
  orthogonal array
- improvements to plot.design:
  - removed redundant warning when temporarily removing responses
  - improved y axis labeling in case plot.design from package graphics is called
- improvements to halfnormal:
  - changed printed output from cat/print to message, 
  - reversed print order for significant effects to show strongest first, 
  - improved visual structuring of printed output
  - added option cex.text for sizing the point labels and further 
    plot annotations 
    text 
  - added a response argument to the design method  
  - added a note to the plot in case the coefficients depend on 
    effect ordering because of (partial) aliasing
- changed package title to title case
- changed start of description in order to avoid warning
- bugfix to oacat documentation (L128.2.15.8.1 is resolution IV, not V)
- bugfix to factor.names: correctly leave factor levels unchanged for 
  R factors  whose levels are not in the order of the factor.names 
  element of design.info

Version 0.26-3, 29/09/2014
- added functions planor2design and data2design for converting 
  a planordesign, data.frame or matrix object to a class design object

Version 0.26-2, 16/08/2014
- bugfix: the xlab option did not work for lm or design objects 
  in function halfnormal
- bugfix: the (non-default) use of conservative critical values 
  used too conservative df for functions CME.LW98 and CME.EM08, 
  the default use of simulated critical values was OK for the standard use 
  case of small dfe but also too conservative for large dfe;
  the conservative t-values have been modified to match the Larntz and Whitcomb 
  specification (and might thus be slightly off for the Edwards and Mee method, 
  the simulated critical values have been adapted to adequate behavior under 
  all dfe settings; currently, these are simulated (1000 runs) on the fly; 
  it is planned for the future to provide pre-calculate ones from many 
  simulation runs for the most important situations
- bugfix: halfnormal.lm did not handle pch vectors correctly
- improvements to function halfnormal: 
  - the default x label "absolute effects" was changed to the more 
    accurate "absolute coefficients" for lm and design classes
  - the function can now take pointwise cex and col arguments 
    in the expected order
  - the labs argument has gained a default, 
    in order to make quick assessments easier
  - for class design and class lm objects, 
    there are new e.points and e.line arguments that both default to TRUE. 
    These allow switching off the pure error points and/or adding 
    a null line (with slope 1/std.err). 
    The previous behavior of the function (points, no line) can be obtained by 
    setting e.line to FALSE. 
  - added a default title that shows the response name, the test method (if applicable) 
    and the significance level
  - changed the output from function halfnormal.default to invisible, 
    as the visible output was often annoying rather than helpful.
- added an imports entry to the NAMESPACE file for package grid

Version 0.26-1, 09/04/2014
- bugfix: in some situations, function summary.design erroneously 
  reported no aliasing for FrF2 designs generated with the option 
  alias.info=3

Version 0.26, 19/02/2014
- implemented advanced quality criteria for orthogonal arrays 
  according to Grömping and Xu 2013 and Grömping (2013) in functions 
  P3.3, P4.4 and GRind
- updated test for column order to also test other P3.3 selections and GRind

Version 0.25-3, 11/12/2013
- bugfix: function plot.design from package graphics was not called as intended from 
  within package DoE.base's function plot.design

Version 0.25-2, 26/08/2013
- bugfix: manual choice of alpha values in halfnormal or ME.Lenth, CME.LW98 and CME.EM08
  failed to produce the simulated critical values in many cases 
  (because of small numerical deviations of seq(0.01,0.25,0.01) from 0.01,0.02,...,0.25)
- bugfix: the case with automated replications without lack of fit did not work
- bugfix: scl did not work correctly for external pure error points with polynomial 
  contrasts 
  
Version 0.25-1, 18/08/2013
- bugfix: print.lm.design printed the linear model twice because of a left-over 
  stats::print.lm

Version 0.25, 16/08/2013
- added function halfnormal (generic with methods for classes lm and design) 
  for more general half normal plots than in function DanielPlot of package FrF2
  (mixed level designs, violations of orthogonality and partial aliasing 
  possible, e.g. by a missing response measurement)
- added simulated critical values for Lenth's method (crit.ME and crit.SME)
- added functions for the significance assessment methods by 
  Lenth (ME.Lenth), Larntz and Whitcomb 1998 (CME.LW98) and Edwards and Mee 2008 
  (CME.EM08)
- added function contr.XuWuPoly, removed option sparse from function contr.XuWu, 
  made option contrasts non-functional for contr.XuWu, and added a (non-functional) 
  option contrasts to contr.FrF2, because model.matrix apparently throws an error
  if that option is not available
- fixed issues with DESCRIPTION and NAMESPACE according to new rules
- removed ":::" access to functions from other packages, where possible

Version 0.24, 05/07/2013
- removed dependencies on packages tcltk and relimp, by removing 
  functions fix and showData (these were moved to package RcmdrPlugin.DoE, 
  which was possible because Rcmdr plugins can now have namespaces)
- moved package dependencies from "Depends" to "Imports", where possible
- replaced the Author and Maintainer field in Description by Authors@R
- added a fast way to obtain word length patterns, based on code provided 
  by Hongquan Xu  
- added a convenience feature for looking at a series of several mosaic plots 
  for a design
- added automated sub titles with design properties for mosaic plots 
  (interesting for experts only)
- created a separate documentation file for the plot.design method
- modified function GR to return Inf for unconfounded three- and four-factor designs, 
  and to also return RPFT=NULL for unconfounded 3-factor designs
- modified attribute GR of output of function P3.3 to ">=4" for designs with zero length 
  three words, and P4.4 to ">=5" for designs with zero length four words
- new function tupleSel automatically selects worst-case tuples from a factorial 
  design, with the goal of helping the user inspect the sore spots of a design
- added an option "detailed" to functions P3.3 and P4.4 that is used by 
  the new function tupleSel
- fixed a few documentation bugs for class design methods

Version 0.23-4, 23/02/2013
- modified function generators.design to provide more easily understandable output 
  for blocked full factorial designs
- added a function getblock that allows extracting block factor information 
  in ways usable by R functions outside the package, e.g. functions from package nlme
- added a function rerandomize.design for randomization after design creation;
  different from the randomization option in package functions, this function 
  does not block the randomization of replications; hence, users have a choice 
  whether they do or do not want a blocked randomization of replications.
- slightly modified the output of function summary.design for blocked designs 
  (moved a line of white space)
- modified functions iscube and isstar to work with the new run.order attribute as of package 
  FrF2 version 1.6-5
- modified function factorize.factor to conform to the latest version of package 
  conf.design, where function factorize.default is no longer exported

Version 0.23-3, 11/02/2013
- Bug fix to functions P3.3 and P4.4: For rela=TRUE, these calculated wrong 
  results for designs with more than 9 columns, due to a character instead of 
  numeric sorting bug.
- modified an assign statement in function export.design to comply with new CRAN 
  ban on assignments to global environment

Version 0.23-2, 17/03/2012
- Function generators.design did not work (=error message) for blocked designs 
  with any manually specified explicit block factors and yielded confusing 
  results for designs that were created using function blockpick.big.
  The updated function yields valid results for designs that were created 
  using function blockpick.big and still throws an error on older version 
  blocked designs with manually specified explicit block factors; for valid 
  generator information on these, package FrF2 has to be version at least 1.4.

Version 0.23-1, 04/03/2012
- Functions formula.design and lm.design gained an argument use.dummies for use in 
  function DanielPlot (package FrF2) for including error dummies in pb designs
  (they used to be always included; the new 0.23 convenience feature of excluding 
  them for linear models wrongly excluded them also for Daniel plots).

Version 0.23, 01/03/2012
- modified P3.3 and P4.4 to be faster and return more information 
  (overall quality criteria are returned as attributes)
- modified formula.design to automatically remove error dummy factors 
  for pb type designs (better comfort in function lm.design
  for designs created with FrF2 version 1.3 and beyond)
- modified function oa.min3 to be faster and slightly more flexible:
  added distinction between total and worst case perspective (new crit option)
- added variants option to functions oa.min3, oa.maxGR and oa.min34, 
  in order to be able to incorporate restrictions from previous 
  filtering by other criteria
- modified functions oa.min34, oa.max3 and oa.max4 to be faster
- modified function oa.maxGR34 to include optimization of the RPFTs, 
  and renamed the function to oa.minRelProjAberr 
- made functions oa.min3, oa.min34, oa.max3, oa.max4, oa.maxGR work with 
  factorial designs with levels different from 1, 2, 3, ...
- added new internal functions PFTs.from.variants, matrix.fromPFTs, rankPFTs, 
  bestPFT for supporting (R)PFT-based ranking and optimization of designs
  (these may become external functions later)
 Bug fixes:
 - For version 0.22-8 of package \pkg{DoE.base}, function \code{iscube} 
   returned a wrong result without warning, 
   when applied to an old version CCD design 
   (before DoE.wrapper, version 0.8-6 of Nov 15 2011).
 - GR ignored the digits argument in the output number (but not in interim calculations, 
   no more than digits digits were valid).
 - removed element plan from sysdata.rda (created issues whenever a user named 
   a design plan, because the intrinsic plan of the package would surprisingly 
   sometimes supersede the users design)
 - With only two factors with even number of levels, blocking into two blocks was not possible, 
   because the respective row did not exist in block.catlg.

Version 0.22-8, 15/11/2011
- allow picking cube only runs from central composite
   - moved function iscube from FrF2 to DoE.base
   - added functions isstar and pickcube
   - modified lm.design and formula.design to cover both 
     designs with center points and ccd designs (added option use.star, 
     changed default for option use.center to NULL (because of different 
     default needs for designs with center points and ccd designs; 
     should not affect standard usage of the functions)

Version 0.22-7, 08/11/2011
- bugfix: col.remove did not work, if no response was among the columns to be removed
- bugfix: response.names with remove=TRUE caused various issues, if designs had been 
  handled in unconventional ways before (e.g. columns added without using 
  the add.response function); this has been fixed by making the handling of desnum 
  more lenient; desnum is currently not really used for anything; if it would be, 
  this would have to be revisited.

Version 0.22-6, 07/11/2011 
- oa.design now uses message command rather than cat() for conveying the message 
  that a better way of column allocation would be available; 
  this allows other packages to suppress this message, if appropriate
- error message for mismatch between nruns and number of runs of specified array 
  improved to show name of array rather than array itself

Version 0.22-5, 11/08/2011
- improvements and bug fixes to add.response: 
  - partial replacement of NA values for responses with otherwise idential values 
    is now possible without the replace=TRUE option 
  - small numeric differences between factors in design and response file 
    led to error messages of different factor settings
  - small numeric differences between responses in both files 
    without the replace option led to error messages
  - block columns and column name with small n were not automatically exempted 
    from being responses

Version 0.22-4, 10/08/2011
- bug fix to automatic block creation in case of multiplicity of a prime in the same 
  factor
- made block.catlg and Yates internal in order to avoid warnings from loading the 
  same quantities again with FrF2

Version 0.22-3, 09/08/2011
- automatic block creation possible for many more situations by incorporation 
  of block factor catalogs for 2 and 3-level factor full factorials 
  (block.catlg used to be in FrF2, block.catlg3 added, Yates used to be in FrF2, 
  Yates3 added)
- bug fix: the number of bocks could be smaller than requested without warning 
  in case block.gen specified a linearly dependent set of generators

Version 0.22-2, 05/08/2011
- removed generic for factorize and factorize.default, 
  which had been included for avoiding problems with function factorize 
  from sfsmisc; as their inclusion created problems, 
  the conflict with sfsmisc was solved via selective import 
  from sfsmisc in package FrF2.

Version 0.22-1, 04/08/2011
- catered for class design objects from package conf.design 
  in functions lm.design, aov.design, formula.design (error messages)
  and summary.design (summary for data frames)
- added warning for split-plot experiments, 
  indicating which effects might have too small p-values, 
  to outputs from functions print.lm.design, summary.lm.design 
  print.aov.design and summary.aov.design 

Version 0.22, 03/08/2011
- added blocking facility to function fac.design, 
  i.e. full factorials can now be blocked
  (one level of blocking only; automatic possible, 
  if only one prime of each type is needed 
  (confounds the highest possible degree of interaction); 
  otherwise, user must specify block generators)
- added some functions for prime and pseudo factor 
  factorization 
- added dependence on package conf.design

Version 0.21-3, 31/07/2011
- added a branch to function print.design for an exception 
  for class design from package conf.design

Version 0.21-2, 04/06/2011
- added names to the list generated by make.formulas 
  in support of making Fractional factorial 2-level designs 
  with center points fit for response surface analysis

Version 0.21-1, 27/04/2011
- bug in function print.design: 
  for many designs, printing in standard order prompted two printouts, 
  one in standard order and one in actual run order (wrongly placed return)

Version 0.21, 31/01/2011
- made the run.no.in.std.order column in the run.order attribute 
  a factor with properly ordered levels for oa.design and fac.design
- introduced option std.order for print.design
- enabled response.names<- function for wide designs
- fixed bug in param.design that led to problems with long-to-wide reformatting 
  for designs without responses
- improved treatment of one-column response matrix in add.response
- modified aggregate.design to keep previous responses, apart from the individual ones
- fixed bug in summary.design that made summaries fail for combined designs 
  like parameter designs
- fixed bug in function generator.design that led to showing wrong block 
   generator information for full factorial blocked designs

Version 0.20, 05/01/2011
- added function contr.XuWu for calculating normalized contrasts for GWLP 
  calculation
- use contr.XuWu in length functions instead of normalization to square root of n, 
  which makes these functions work appropriately for designs with imbalanced 
  individual columns
- implemented several improvements with the purpose of supporting adequate selection 
  of mixed level screening designs, following Groemping 2011
  - added relative projection frequency tables in functions 
    P3.3 and P4.4 with option rela
  - implemented option rela also into functions length3, length4 and length5, 
    for obtaining the total relative number of words (cf. Grömping 2011)
  - implemented new function GR for generalized resolution (generalizing 
    Deng and Tang 2009)
  - also enhanced functions oa.min3, oa.max3, oa.max4, oa.min34 with rela option,
    added functions oa.maxGR for maximizing generalized resolution and 
    oa.maxGR.min34 for optimizing numbers of relative length 3 or 4 words 
    among designs with maximum generalized resolution (and in case of ties 
    absolute length 4 words for best relative length 3)
  - added options regarding the new optimization facilities 
    to function oa.design (additional choices for column option)
- improvement for fix.design: message box that informs about permissible changes

Version 0.12, 05/08/2010
Methods of lm and aov for class design:
- added a generic for function aov, a default method (which is the function 
  from package stats) and a method for class design, as well as 
  summary and print functions that ensure that enough information 
  is printed regarding the number of observations and the formula used 
- added an explanation about the implications of the existence 
  of lm and aov generics for match.call-requests
- introduced a method for function coef for lm.design objects that omits 
  NA coefficients
Design diagnostics:
- improved memory usage in functions length3 and length4 
  (replace mm3 and mm4 by vec3 and vec4 with sum)
- added functions length2 and length5 for occasional uses, 
  plus an overall function lengths for all four implemented lengths
- added option J to length functions for optional output of 
  J-characteristics instead of lengths 
  (for supporting theoretical investigations rather than 
  practical design generation)
- added function oa.max4 (for supporting theoretical investigations rather than 
  practical design generation)
- removed function P4.3 because it is considered redundant
- further improvement to documentation of generalized word length 
Bug fix:
- made nruns a minimum requirement rather than an exact requirement in function 
  oa.design, as was always documented; 
  the previous version returned a full factorial, whenever the requested 
  minimum number of runs itself was not feasible; 
  now the smallest orthogonal array with at least nruns runs is returned

Version 0.11-1, 09/06/2010
Bug fix: function summary.design gave wrong statement on alias information 
for FrF2 designs with only one alias entry for main effects or 2fis. 

Version 0.11, 23/04/2010
- documentation of generalized.word.length: corrected typos and made it more understandable
- made generators.character able to look up designs in arbitrary selected catalogues
- made generators.design use the new catlg.name entry in design.info for FrF2 designs,
  so that summary.design works for such designs

Version 0.10, 03/04/2010
- meaningful error message, if full factorial is too large;
  now indicate before trying to create full factorial how many runs this will have
- implemented child arrays with substantial contributions from Boyko Amarov
- included child arrays into oacat
- moved documentation of oacat from oa.design documentation to a separate file
- made show.oas show lineage information and child arrays
- made show.oas return the displayed information as a data frame
- allowed for show=0 and show="all" in show.oas
- removed arrays L18.2.1.3.7 and L36.2.11.3.12, which were identical to Taguchi arrays 
  L18 and L36; Taguchi arrays are available now as L18, L36 and L54; the corresponding 
  arrays with regular labelling (L18.2.1.3.7, L36.2.11.3.12, L54.2.1.3.25) 
  can be constructed as children from Kuhfeld parent arrays, as indicated in oacat 
- adapted formula.design to reflect formula in (future) Dopt designs
- adapted summary.design for lhs and Dopt type designs to display optimality 
  criteria
- added functions P3.3, P4.3 and P4.4 for pattern of length 3 (4) words 
  of projections onto 3 (4) factors
- added an explanation of generalized word length to the documentation 
  word length based functions
- added some word length information to summary.design for smaller type oa designs
- made option quote for summary.design take effect on more aspects

Version 0.9-17, 24/02/2010
- fixed documentation issues
- added functions length3 and length4 for calculating numbers 
  of generalized words of lengths 3 and 4 in support 
  of automatic choice of better designs than just populating columns 
  from left to right
- added functions oa.min3, oa.min34 and oa.max3 for looking at best 
  and worst arrays
- added optimization possibility (default: no optimization, like previously) 
  to oa.design (using option columns)
- added some large (128, 256, 2048) resolution V non-regular arrays for 2-level 
  factors from textbook by Mee 2009
- improved print.design for blocked and split-plot structures: 
  structured the printout to display structuring lines between blocks or plots
- improved summary.design for FrF2-type designs: 
  - removed empty aliased entries (i.e. empty entries for main or fi2s 
    that were displayed as character(0) previously)
  - added the possibility to displaying the design itself with the summary
    (default: designs with up to 40 runs and 12 factors are displayed, others not;
    controllable by option brief)
  - added display of generator information via function generators 
    (generic with methods)
    - note that function generators.design does not work for designs of 
      types FrF2.param... and FrF2.folded
    - note that this feature does not work on blocked or splitplot designs 
      that were produced with old versions of FrF2, 
      as calculated generators would be wrong in some cases
      (this is protected against by checking for the new entry FrF2.version 
      in design.info of newer FrF2 designs) 
  - removed message on non-usage of center points with formula.design
bug fixes:
  - nlevels of length 1 with ID produced uncaptured error
  - various factor specifications with only one factor produced uncaptured error
  - full factorial is returned whenever possible; originally, 
    a (arbitrarily badly-aliased) design from the orthogonal array catalogue was returned, 
    if one existed with same size as full factorial


Version 0.9-14, 13/01/2010
- fixed new bug in plot.design that stopped the function to work for designs 
  with responses

Version 0.9-13, 13/01/2010
- modified function plot.design to enable selection of some factors only
- fixed bug in plot.design that led to creation of an insubstantial warning
  for many designs

Version 0.9-12, 13/01/2010
- created function show.oas, which allows to inspect the available orthogonal 
  arrays according to a few criteria
Bug fixes:
- fac.design and oa.design did not provide reasonable error messages, 
  if nlevels contained integers below 2

Version 0.9-11, 02/01/2010
- extended print.design and summary.design to accomodate specialities of 
  D-optimal designs
Bug fixes:
- summary.design gave the wrong number of blocks 
  (block size instead of number of blocks)
- export.design for csv files exported row names without header, 
  which led to a numeric variable X when reimporting the file 
  with default behavior

Version 0.9-10, 27/11/2009
- bug fix of Version 0.9-9 really implemented

Version 0.9-9, 27/11/2009
- bug fix: column names of desnum attribute were not updated to new names when
     using `factor.names<-` replacement for the design

Version 0.9-8, 26/11/2009
- added a function col.remove for removing responses and non-design columns 
  while preserving the class design structure
- added a remove option to `response.names<-` 
- added to function `factor.names<-` the possibility of choosing 
  whether or not to modify contrasts
- made documentation of class design more explicit for attributes desnum 
  and value of assignment functions `response.names<-` and `factor.names<-`
- provided for lm.design and formula.design for Dopt designs (to be implemented 
  soon in DoE.wrapper)
- modified summary.design:
  - cat instead of message for design generation info for RcmdrPlugin.DoE
    (--> no longer shown as warning in RcmdrPlugin.DoE)
  - improved output for ccd, bbd and lhs designs 
    (further enhancements to come, which require pending changes in DoE.wrapper)
- modified export.design to include more meaningful headers for factor levels 
  legend in case of quantitative designs
bug fixes: 
`factor.names<-` now also modifies the legend of the alias information 
  for FrF2 designs. Furthermore, it correctly handles designs with quantitative 
  factors and does not modify the desnum attribute of lhs, ccd and bbd designs.

Version 0.9-7, 05/11/2009
The fix in 0.9-6 was not as robust as intended, reverted to the previous version. 

Version 0.9-6, 04/11/2009
provided a more robust bug fix for the "lm.default" not found bug: 
modified the call of the stored lm objects so that they can be handled 
without package DoE.base loaded, and excluded lm.default and lm.design 
from exporting again; 
also removed most arguments from lm.default

Version 0.9-5, 03/11/2009
- bug fix: 
  export also lm.default and lm.design, as registration as S3 methods did not 
  suffice to have them found; this messed up function update (error message: 
  lm.default not found)
  Thanks to Alex Loguinov for the bug report.
- fixed broken links in documentation to formula.design

Version 0.9-4, 25/09/2009
- corrected another link in documentation for lm.design

Version 0.9-3, 17/09/2009
- added meaningful title to showData display (was always undesign(dataframe))
- corrected a link in documentation for lm.design

Version 0.9-2, 14/09/2009
- add.response now converts the name of a numeric variable to a valid R name. This 
  solves issues with using add.response indirectly when applying it with a calculated response. 
- oa.design and fac.design now also convert factor names to valid R names using make.names
- param.design now converts given response names to valid R names.

Version 0.9-1, 11/09/2009
- changed message to cat in print and summary
- added function SN for signal-to-noise ratio 
  (target only, since other versions are not scale invariant)
- added generic, default and design method for showData (in support of RcmdrPlugin.DoE)

Version 0.9, 07/09/09
- export function contr.FrF2 
- fixed bugs in oa.design and fac.design for factor.names as an unnamed list 
  for cases with nfactors unspecified 
- made all experimental factors for function fac.design R factors per default 
  (previously, numeric 2-level experimental factors were exported as numerics)
- created method for aggregate for aggregating related response columns for the wide 
  designs (useful for repeated measurements and parameter designs)
- made contrasts option of function qua.design more user-friendly
- added function change.contr to change contrasts for design objects 
  even more user-friendly than with qua.design
- made function formula.design (method for function formula) a serious function that 
  covers the currently available design types for packages DoE.base, FrF2 and DoE.wrapper
- added a generic, a default and a class design method for function lm,
  the class design method of which does default analyses and adds the class lm.design 
  to the output object
- added a summary method for class lm.design that adds a class summary.lm.design 
  to a standard output object from summary.lm
- added print methods for classes lm.design and summary.lm.design in order to
  make sure that automatic changes to the data body (like 
  omission of center points or aggregation) cannot go unnoticed
- added function iscube (identical to the one in package FrF2) as an internal function  
  in support of lm.design
- bug fix: [.design generated a warning for logical i 
- bug fix: repeat.only element of design.info of wide format repeated measurement designs 
  was TRUE, which led to inconsistent behavior (fixed in function reptowide)

Version 0.8, 24/08/09
- updated qua.design to also be able to make quantitative designs qualitative (except lhs designs), 
  fixed several bugs in qua.design, added a test file, and tidied the code
- made functions fac.design and oa.design tolerate factor.names to be an unnamed list
- bug fix: plot.design did not work, if design.info had a quantitative element with all entries NA
- removed bug for add.response, if some but not all response values are NA and replace=FALSE
Thanks to Matthias Burger for initiating the following improvements:
- exported function origin and added a usage example (was unintentionally internal before)
- eliminated instances of partial argument matching in function html.data.frame
- use functions comment and comment<- from package base and do not define special function here
- fixed installation note regarding global binding of result
- improved markup in Rd files


Version 0.7, 17/08/2009
- added function plot.design for allowing to deviate from plot.design 
  in package graphics as appropriate
- splitted documentation for class design into documentation of class itself 
  with direct accessor functions on the one hand and methods for the class 
  on the other hand
- generalized function des.recode to be usable within FrF2 as well in place of the 
  previously existing internal function within FrF2; 
  made the function visible rather than internal
- bug fix: explicitly disabled qua.design for designs with center points for the time being
  (it is intended (but not trivial) to allow switching away from quantitative later)

Version 0.6-1, 12/08/2009
- added further design types to designs for which run.order is displayed
  (for upcoming version of FrF2)
- bugfix: function design.info refused to assign correct design info element 
  to blocked designs

Version 0.6, 11/08/2009
- further restricted the designs to be treatable by function cross.design 
  (splitplot and combined designs excluded, wide version designs excluded, 
  designs with response.names excluded);
  this should not limit reasonable use much and greatly reduces the number 
  of cases to be distinguished
- improved the design.info content for designs output by function cross.design, 
  particularly the generators element (in case of FrF2.generator designs), but also 
  for the elements generating.oa, origin, residual.df, clear, res3, map, nlevels 
  (the last two are set to NULL and replaced by elements cross.map and cross.nlevels 
  respectively)
- modified the type of designs output by function paramtowide to be the type of the 
  inner array design suffixed by .paramwide
- modified the design.info for wide parameter designs to refer to the inner array 
  only (the outer array is usually the noise array that is aggregated over in various 
  ways for analysis purposes)
- modified summary.design (printing of response for wide format designs) 
- added function qua.design for switching between quantitative and qualitative factors 
  and choosing contrasts for qualitative factors (limited freedom of choice for contrasts!)
- documentation bug fix: nruns in oa.design gives the *minimum* number of runs


Version 0.5, 31/07/2009
- changed R version to R-2.8.0 or newer (extractor for class design does not work 
  with earlier versions)
- added function print.design for printing useful information along with the design
- added function summary.design for providing key information from design.info in 
  convenient format
  (will be developed further and may still change)
- added functions reptowide and reptolong to reshape the experiment for 
  repeated measurements (repeat.only=TRUE) between wide and long shape;
  still experimental when applied to non-standard designs
- added function cross.design for crossing designs, 
  algorithm modified from function direct.sum from package conf.design
- added function param.design for creating Taguchi style inner/outer array designs, 
  and function paramtowide for setting these to wide format
- added type all to export.design so that both csv and html can be output at the same time; 
  meant for non-Excel users who want to work with csv file but nevertheless need the legend from 
  html file
- new function add.response to combine exported design with externally input response data;
  this is still somewhat experimental
- extended extractor method for designs to allow limited replication possibilities
- added modification step to creator attribute of designs modified by extraction
- removed intercept column from desnum attribute for designs created with 
  fac.design or oa.design or modified with factor.names
- bug fix: there were unintended names attached to the selected.columns element in design.info;
  these were not always correct and have now been removed
- bug fix: [.design did not always work correctly if j was not specified
- bug fix: run.no.in.std.order for run.order attribute of functions fac.design 
  and oa.design was previously made unique (by uniqueness of row.names for data frames); 
  corrected to yield the run numbers only
- bug fix: renamed randomized to randomize in functions oa.design and fac.design, 
  in line with package FrF2, and adjusted documentation accordingly

Version 0.4-1, 15/07/2009
- bug fix in function fix.design: error checking for changed factors 
  had a bug and stopped perfectly legal edits from being stored.


Version 0.4, 13/07/2009
- all experimental factors are now R-factors, even if they are numeric
- export.design can now also export the R workspace only, without csv or html
- bugfix: export.design did not correctly check replacing of files in case of 
  capital letters in file names
- modified export.design to handle factor labels with blanks from (future) GUI 
  package RcmdrPlugin.DoE
- added S3 generic for fix with default and design method
- extended design.info for output objects from function oa.design to include nruns, 
  nfactors and nlevels
- improved documentation of class design and the respective parts of the value 
  sections of functions oa.design and fac.design
- included function contr.FrF2 and constant Yates from package FrF2 
  (not exported; also remain in package FrF2)

Version 0.3, 27/06/2009
- added list element creator to design.info attributes of created designs
  and improved documentation of class design and its accessors
- bug fix in documentation to export.design and several other small changes 
  in documentation and package description
- substantially improved and extended documentation to function oa.design

Version 0.2, 26/05/2009
- modified internal function html.data.frame, 
  so that top row of html file created by export.design 
  is only one row when file is opened in Excel 
  (changed top row formatting from <h3> to <b>)
- added options filename and replace to function export, 
  in order to protect users from inadvertent replacement of existing 
  files and to allow filenames different from design names
- moved documentation of constant Letters from oa.design.Rd 
  to Utilities.Rd