Changes in version 0.99 NEW FEATURES o A new object-oriented infrastructure for the creation of HTML code is used in format_html() methods. This infrastructure is exposed by the html() function. o Support for with model groups in mtable(). c.mtable() now creates groups of models, if arguments are tagged. o Flattened contingency tables (ftable()s as they are created by the eponymous function in the stats() package) can now be combined into ftable_matrix() objects. This can be done by using rbind() or cbind(). o There is now an object class for survey items containing dates (without times), called "Date.item". o Support for including sandwich estimates of sampling variances and standard errors into the output of summary() and mtable(), by the new generic functions withVCov() and withSE(). o Support for different parameter sections is added to mtable. This is intended to allow output of mixed effects models to distinguish between ("fixed effects") coefficients and variance parameters. o Objects created by mtable() also can have several header lines. Facilities to add additional header lines will be added soon. o Optionally, mtable() shows the left-hand sides of model equations. This can be controlled by the optional argument show.eqnames and by the global option "mtable.show.eqnames". o Output of mtable() objects also include, if applicable, a note that explains the "significance stars" for p-values. o Summary statistics reported by mtable() can now be selected for each object or object class (via calls to options()) separately. o It is now possible to compress the output concerning control variables in mtable(). o Support for HTML and LaTeX output in Jupyter notebooks is added to objects created by mtable() and ftable() etc. o The toLatex() method for "ftable" objects gains a fold.leaders option (with default value FALSE) which allows the row labels (leaders) to remain in a single column. o A function codeplan() creates a data frame describing the structure of an "importer", "data.set" or "item" object. It is possible to copy this so described structure from one "data.set" object to another or to a data frame. o New $ and [[ operators for "importer" objects allow to create codebooks for single items/variables in imported data files. o A duplicated_labels() function allows to show and describe duplicated labels and a deduplicate_labels() function allows to get rid of such duplicates. o New operators %#%, %##%, and %@% to manipulate annotations and other attributes. o A List() function adds names to its elements by deparsing arguments in the same way as data.frame() does. o A new function Groups() allows to split a data frame or a "data.set" into group based on factors in a more convenient way. There are methods of with() and within() to deal with resulting objects of class "grouped.data". For example, the within() method allows to substract group means from the observations within groups. withinGroups() allows to split a data frame or "data.set" objects into groups, make within-group computations and recombine the groups into the order of the original data frame or "data.set" object. o A new function Reshape() simplifies the syntax to reshape data frames and "data.set" objects from wide into long or from long into wide format. o 'tibbles', including those created with the _haven_ package can be translated into "data.set" objects without loss of information. Also "data.set" objects can be translated into 'tibbles' with minimal loss of information. o An extendable function view() allows to use the View() facilities provided by graphical user interfaces (in particular RStudio) with objects not originally supported by these user interfaces. In addition, view() methods for "codeplan", "decriptions", "data.set", and "inporter" are provided, which allow to conviently inspect the contents of these objects in RStudio. o An "as.data.table" for coercing "data.set" objects directly into "data.table" objects. o It is now possible to specify the measurement level for a set of variables in a "data.set" objects, either by using the assignment operator with measurement() or by using the new function set_measurement(). o There are convenience wrappers such as Mean() etc. for mean() etc. that have the default setting na.rm=TRUE instead of na.rm=FALSE. o A new deduplicate_labels() function allows to deal with duplicate labels (where several codes have the same label) o It is now possible to create codebooks for weighted data. o The function trim_labels() allows to trim codes from value labels. o The function reverse() allows to reorder the codes of a survey item in reverse order. o The generic function Means() allows to conveniently obtain group means, optionally with standard errors and/or confidence intervals. o The colon operator (:) can be used to refer to ranges of variables in foreach() o Code plans (objects in class "codeplan") can now be exported to and imported from YAML and JSON files. o A new generic function format_md() (contributed by Mael Astrud-Le Souder) allows to format R objects in Markdown. Currently, methods for codebooks (and entries in codebooks) are implemented. o A new generic function coarsen() allows to coarsen numeric vectors into factors, based on a given number of categories. o A new generic function measurement_autolevel() allows to automatically select the appropriate measurement level for survey items. o A new operator %if% allows to assign values to a variable for observations that satisfy a condition. o A new operator %$$% allows to abbreviate object modifications using within(), i.e. instead of a <- within(a, { ... }) you can write a %$$% { ... } IMPROVEMENTS o Subset methods for importer objects are much more memory efficient and now can handle files of size larger than 1GB. o useDcolumn and useBooktabs arguments of toLatex() methods now have global options as defaults o toLatex() methods optionally escape dollar, subscript and superscript symbols. This can be set either by an explicit (new) argument toLatex.escape.tex or by a global option with the same name. o The toLatex() method for "ftable" objects has a new option fold.leaders. o spss.system.file() now translates numeric variables with any SPSS date format into a "datetime.item" o The function List() adds names to the elements of the resulting list in a way similar to how data.frame() adds names to the columns of a data frame. o Stata.file() now handles files in format rev. 117 and later as they are created by Stata version later than 13. o User definded missing values are now reported in separate tables in entries created by codebook() even if these entries refer to items with measurement level "interval" or "ratio". o If the annotation or the labels of a non-item is set to NULL this no longer causes an error. o Changing varible names to lowercase while importing data sets with Stata.file(), spss.portable.file(), and spss.system.file() is now optional. o Importer methods Stata.file(), spss.portable.file(), and spss.system.file() now have optional arguments that allow to deal with variable labels or value labels in non-native encoding (e.g. CP1252 on a utf-8 platform). o A function spss.file() acts as a common interface to spss.portable.file() and spss.system.file(). o The function head() and tail() now work with "data.set" and "importer" objects in the same sensible way as they do with data frames. o The function recode() behaves more coherently: If a labelled vector is the result of 'recode' it gets the measurement level "nominal". Factor levels explictly created first come first in the order of factor levels. o The function spss.system.file() now handles buggy SPSS system files that lack information about the number of variables in their header. (These files are typically created by the library ReadStat, used e.g. by the R package 'haven'.) o SPSS syntax files are now converted to the encoding of the host system if they have a different one. By default, the original encoding is assumed to be Codepage 1252 (extended Latin-1). o codebook(), codeplan(), labels(), value.filter, and related functions return NULL for NULL arguments. o codeplan() also works with indiviual survey items and can set to NULL, which means that all memisc-specific information is removed from the data. o codebook() works also with data frames (or "tibbles") imported with the _haven_ package. o codebook() now makes use of the "label" attribute of variables if the attribute is present. o with(Groups()), withGroups(), within(Groups()), withinGroups(), Aggregate(), and genTable() are considerably faster now. They can also make use of certain automatic variables such as n_, i_ that contain group sizes and group indices. o relabel(), rename(), and dimrename(), do no longer require their arguments to be enclosed in quotation marks. o Operators '$', '[', and '[[' can now be appied to codebook objects to get a codebook of a subset of the varaibles. o spss.system.file() now uses information contained in SPSS files (if available) to determine the measurement level of the improrted variables. o spss.system.file() uses information about the character set encoding if available in the file to translate variable labels and value labels into the coding of the machine on which _R_ is being run. o spss.system.file() also (optionally) uses information about the intended measurement level fo variables in the file. o as.item() now drops non-unique labelled values when applied to a "labelled", "haven_labelled", or "haven_labelled_spss" object. o spss.system.file() no takes into account metadata about measurement levels ("nominal", "ordinal", or "scale") to set the measurement() attributes of the items in the resulting "importer" and "data.set" objects. o mtable() now handles objects of class "clmm" (from package "ordinal") and the handling of objects of class "merMod" (from package "lme4") is more consistent with those of class "glm" (e.g. the number of observations is shown). o Variance component estimates of "merMod" and "clmm" objects are reported as distinct statistics. o recode() has a new optional argument code=. If TRUE, existing codes (and labels) are retained. o recode() now allows to recode factors into numeric vectors. o If the change in codes done by recode() merely reorders codes, labels are reordered accordingly, unless labels are explicitly given. o subset() is S3-generic again, as this allows for lazy evaluation of its arguments. o cases() handles NAs more sensibly - if a case condition is TRUE this leads to a non-NA result even if other conditions evaluate to FALSE, if cases() is called with na.rm=TRUE (the default). o The result of subset and of the bracket-operator ([]) applied to importer objects has row names that indicate the rows selected from the full data. o A method of format for data set objects is added. o The row names of subsets fo importer objects reflect the row numbers in the original data. o collect.data.frame and collect.data.set gain a use_last and a detailed_warnings option to improve handling of variables with different attributes in different objects being collected. o spss.system.file(), spss.portable.file(), and Stata.file() get an optional negative2missing argument. o recode() keeps NAs as NAs when an otherwise argument is given and NAs are not recoded explicitly. o codebook() now fully supports logical vectors. o HTML output created by format_html etc. now uses '