0.11.7 (15.10.2025)
================
* fix CRAN checks

0.11.6 (14.07.2023)
================
* add 'as_spss' argument to 'significance_cpct' for more SPSS-compatible results (issue #100) 
* add rounding option (issue #100)
* fix bug with duplicated columns labels in tab_pivot(stat_position = 'inside_columns') (issue #102) 

0.11.4 (03.11.2022)
================
* fix disastrous bug which prevent package installation for R version before 4.2 (many thanks to Tom Elliott)

0.11.2 (15.10.2022)
================
* fix for new R version

0.11.1 (07.01.2022)
================
* add 'weight_by' - function for "brute force" frequency weighting
* 'read_spss' now exposes 'use_missings' argument from foreign::read.spss
* 'apply_labels' now can accept list with variable and value labels
* 'calc_cro_*'s are renamed to more clear 'cross_'s 
* 'compute', 'do_if', 'where' and 'calc' are deprecated in favor of the 'maditr' 
    package. 'maditr' is thin layer above fastest data manipulation package 'data.table'  

0.10.7 (15.11.2020)
================
* fix compatibility with SPSS in 'w_median' function (issue #72)
* fix bug with incorrect labelling some cases in 'recode' (issue #73)
* 'default_dataset' functionality is deprecated
* 'apply_labels' now respects data.table (and assign labels by reference for data.table)
* 'not', 'or', 'and', 'when' now respects criteria functions

0.10.6 (26.07.2020)
================
* fix for new data.table version (issue #67). Thanks to John Williams.
* fix dplyr behaviour (issues #65, #68)

0.10.5 (05.07.2020)
================
* add argument 'default' for 'var_lab' function (issue #60). Thanks to Dan Chaltiel 
* fixes for new versions of R, htmlTable, huxtable

0.10.3 (30.03.2020)
================
* very minor fix: revert back default method for 'set_caption'

0.10.2 (25.03.2020)
================
* fixes for R4.0
* new vignette with examples
* add functions 'hide' and 'unhide' for selective hiding and showing categories in 'net' and 'subtotal'
* now logical don't have special meaning in the 'recode'. If you use this functionality than use 'when' instead. 
    recode(y, x>5 ~ 1) need to be replaced with recode(y, when(x>5) ~ 1).
* add 'xl_write_file' for quick export tables to Excel file
* Add 'tab_caption' - alias for 'set_caption'

0.10.1 (28.11.2019)
================
* output to PDF, Word via huxtable package (thanks to Sebastian Jeworutzki). See 'as_hux' and 'expss_output_huxtable'.   
* bugfixes

0.9.1 (26.08.2019)
================
* fix vignette for new 'reformulate' 
* fix recode for list recodings. Now c(1, 5 %thru% 99) ~ 999 works properly.
* 'subtotal' and 'net' produce consistent ordering of subototal items (thanks Roberto Gilsaura for extensive testing)
* 'subtotal' and 'net' allow overlapping categories

0.9.0 (01.07.2019)
================
* add 'subtotal' and 'net' functions. See '?net'.
* 'recode' now can recode value labels to keep them consistent with values (see argument 'with_labels')
* add alias 'rec' to recode with argument 'with_labels = TRUE' by default
* now you can assign new labels in 'recode' ("TOP" = 4:5 ~ 5)
* improve 'recode' performance
* simplify 'recode' behavior. Now RHS and LHS part in the recoding formula should be single column object. However, you can still recode entire data.frame or list.
* improve preformance of 'sum_row', 'mean_row', 'median_row' and etc.
* change labelled 'csv' format. Now labels are stored in the same file as data. Labels are located in the commented lines at the begining of the file. Inspite of changing format, 'read_labelled_csv' should detect and read the old format automatically.
* add new functions: 'read_labelled_xlsx' and 'write_labelled_xlsx'. Now you can save and restore labelled data to Excel file. Labels are stored on the separate sheet. 
* add new functions: 'read_labelled_fst' and 'write_labelled_fst' for storing data in the 'fst' format (https://www.fstpackage.org/). With this format you can read and write a huge amount of labelled data very quickly.
* Small bugfixes.


0.8.11 (16.04.2019)
================
* UPDATE IS REQUIRED. fixes for R>=3.6 and data.table >=1.12.2.
* now htmlTable respects 'align' argument (Issue #20)
* fix 'add_labelled_class' for 'haven' 2.0
* improve SPSS syntax in 'write_labelled_spss'
* add new significance test - 'significance_cell_chisq'/'tab_last_sig_cell_chisq'. Idea by Roberto Gilsaura. 
* now 'significance_cases' has new argument 'correct' for Yates' correction. By default it is TRUE
* add 'qe' function for making list of expressions
* ..$ selector now supports arbitrary expression
* fix bug in 'cro_mean_sd_n with incorrect weighted valid n in some cases
* Numerous small bugfixes

0.8.10 (12.12.2018)
================
* 'nest' - more consistent behaviour for 'a %nest% list(x, y, z)`
* 'split_off' now respects data.table and etable classes
* 'xl_write' supports functions in 'additional_cells_formats' argument

0.8.8 (11.11.2018)
================
* add '*.xlsx' export for tables via 'openxlsx' package. See ?xl_write
* add 'set_caption' function and support for it in 'htmlTable', 'as.datatable_widget' and *.xlsx export
* add function 'expss_enable_value_labels_support_extreme'
* small bugfixes and performance improvement
* 'from_text' renamed to 'text_to_columns'
* 'by_groups' is deprecated now. Use 'take' from 'maditr' instead.
* 'dtfrm'/'as.dtfrm' are finally removed. Use 'sheet'/'as.sheet' instead
* 'lst'/'.lst' are removed    

0.8.7 (12.06.2018)
================
* fix long-standing bug with broken html rendering in knitr (issue #6)
* add '..p' and '..f' - perl regular expression/fixed pattern selectors. Also 'mrset_p', 'mrset_f', 'mdset_p', 'mdset_f' are provided.
* add ..data shortcut for entire data.frame in 'use_labels'
* fix awful bug with incorrect nesting multiple response on multiple response ('nest' function)
* more exports from data.table
* fix 'add_columns' for data.table
* fix 'do_if' for data.table
* fix 'w_cor' - now diag elements always equal to one 
* add 'split_by' - alias for 'split_separate'

0.8.6 (24.01.2018)
================
* fix tests for systems with no long doubles support
* new arguments and small improvements in 'write_labelled_csv'/'write_labelled_sps'
* minor fixes
* change 'vlookup'/'vlookup_df' behavior - now it also matches on NA
* 'datatable' is deprecated. Use as.datatable_widget instead.
* move DT and htmltools dependencies from Imports to Suggests
* new function 'add_columns' which is inspired by MATCH FILES (Add variables...) from SPSS Statistics

0.8.4 (11.12.2017)
================
* compatibility with new version of htmlTable package
* minor fixes

0.8.3 (06.11.2017)
================
* add 'calc_cro_*' functions family
* minor fixes
* compatibility with new version of 'testthat' package

0.8.2 (26.09.2017)
================
* fix bug with single column "mrset"
* fix bug with significance tests on tables with complex headers
* add uboxing possibilities for ..[] (..[] = list/data.frame will create separate variables from that list/data.frame)
* add 'text_to_columns' for creation data.frame from text lines
* improve performance of 'cro_*'
* remove deprecated function ".set"

0.8.1 (10.08.2017)
================
* add significance testing (see ?significance)
* add support for table output for Jupyter notebooks
* add 'use_labels' function for experimental support variable labels in base R functions and third party packages (see ?use_labels)
* increase table functions performance
* increase 'as.dichotomy'/'dummy' performance
* increase 'vlookup'/'vlookup_df' performance
* numerous bugfixes
* now 'keep'/'except'/'by_groups' operate with NSE. For standard evaluation just surround you variable with round brackets
* add print options 'commented' for printing tables to console with '#'
* add functions 'split_separate'/'split_off'
* add 'prepend_names'/'prepend_labels' - issue #2
* add 'indirect'/'indirect_list' - aliases for 'vars'/'vars_list'
* add 'mis_val' - alias for 'na_if'
* add 'unsafe' argument for *_fun/*_fun_df.
* add '..' object for parameter substitution inside 'compute' and etc. Usage: '..$param_name'. For details: ?..
* improve 'lst' function
* '.set'/'set' inside 'compute' and etc. are deprecated. Use '%into%' instead.
* expansion of variables in backticks inside 'vars'/'vars_list'/'%into%' is removed. Use explicit 'subst' instead
* infix/assignment versions removed: '%modify%', '%compute%', '%sort_asc%', '%sort_desc%', '%keep%', '%except%', '%where%', '%by_groups%'


0.7.1 (10.04.2017)
================
* make value labels support in the base R and other packages (via 'factor' for class 'labelled')
* radically improved performace for 'cro_*' and 'fre_*' due to 'data.table' under the hood
* multiple/nested banners/variables suppport in 'cro_*'
* add 'datatable' for tables representation in Shiny
* add 'htmlTables' for tables representation in RStudio viewer and for knitting to html
* add methods for `where` for vectors/matrices/lists
* less cryptic message about bad number of rows in `modify`/`modify_if`
* .N now is preferable to .n inside `modify` and etc.
* Functions for default dataset now invisibly return modified default dataset
* Fix logical arguments in boolean operations for criteria functions
* `%in_row%`/`%in_col%` are deprecated. Use `%row_in%`/`%col_in%` instead.
* NULL argument for criterion is removed. Use `not_na` instead.
* remove `default` argument in `ifs`. Use TRUE ~ default_value instead.
* add usual vectors functions additionally to infix versions.
* add 'do_repeat' function
* add functions for weighted statistics - 'w_mean', 'w_median', 'w_cor' and etc.
* add 'nest' function for creation nested tables.
* remove 'category', 'category_df' - use 'as.category' instead
* remove 'dichotomy', 'dichotomy1' - use 'dummy', 'dummy1' instead
* remove 'dichotomy_df', 'dichotomy_df1' - use 'as.dichotomy' instead
* remove labelled matrix support
* bugfixes



0.5.5 (19.10.2016)
================
* numerous bugfixes
* change behavior of `if_val()` - now it dowsn't copies old values by default. There are 'other' and 'copy' instead of dots.
* add `%n_i%`, `%n_d%` - names intersection and diffs
* add `add_rows` function
* add `keep` and `except` functions for selecting/dropping columns in data.frames
* add 'where' for filtering dataset
* add `sort_asc` and `sort_desc` functions for sorting data.frames

0.5.1 (07.07.2016)
================
* initial release 

