- Additional check for
createArgusInput()to make sure that the holding variable is integer (if specified) - Additional check for colons in labels in
createArgusInput() - Fix non-default Totals whe using
createArgusInput()
- Improvements in
SIMPLEHEURISTICwhen adding additional suppressions - Add
RegSDCas suggested package in order to avoid a CRAN note - Skip Unit-Tests for CRAN only
- Fix singleton-detection procedure in case of existing "dummy-cells" (code
"w")
- Update dependency on
Matrixpackage
- Make
SSBtools::GaussSuppressionasmethod = "GAUSS"available inprotectTable() - Update of package vignette
- Small overall fixes
- Fix creation of tau-Argus batchfiles (
typ = "microdata") in case aggregate codes are available in raw input data
- when applying dominance rules, empty cells (with frequency
0) are never marked primary sensitive - do not overwrite pre-existing sensitive cells when applying a threshold rule after a dominance rule with
allowZeros = FALSE - when computing dominance rules using sampling weights it is ensured that weights are consistently rounded
- allow invocation of exact previous implementation of
"SIMPLEHEURISTICusingmethod = "SIMPLEHEURISTIC_OLD"inprotectTable() - fix for edge-cases in
"SIMPLEHEURISTIC": weights are temporarily changed for"z"-cells if no additional suppression can be detected - combined existing functionality to compute constraint-matrix of a problem instance into (much faster)
create_m_matrix()- replaced internal methods/functions
c_gen_mat_m()and.gen_constraint_matrix()andgenMatMFull()
- replaced internal methods/functions
- re-parametrized internal method
c_make_att_prob
- rewrite of the
"SIMPLEHEURISTICapproach- is based on (full) constraint matrix written using
rcpp - rewritten the singleton-detection procedure with
rcpp - by default attacker-problems are checked (in a loop) for primary sensitive cells and additional supps are added until all required cells are secure (fixes also issue #136, thx Øyvind Langsrud for reporting)
- the previous (possible unsafe but faster) implemented method can be toggled using parameter
solve_attackerprobsinprotectTableandprotectLinkedTable
- is based on (full) constraint matrix written using
- bugfix in internal method
c_gen_mat_mwith problems that have a single dimension - dominance rules:
- bugfix when computing rules on weighted data
- allow nk-dominance rules with n=1 (thx @MaximeBeaute for reporting)
- increased performance as contributing-units to cells are computed only once
- improved function
attack()- problem-formulation and solution using the
glpkAPI-package - can be used to attack all (suppressed) or specific cells
- can also be used after computing a solution for the cell suppression problem
- problem-formulation and solution using the
- performance improvements
c_quick_suppression()andattack()compute linear deps (.gen_contraint_matrix) only once- improvements in computation of contributing units to a cell (
contributing_indices)
- new/updated functions/methods:
- new function
protect_linked_tables()- will replace
protectLinkedTables()in the future (currently calls new function internally) - only allows the
SIMPLEHEURISTICalgorithm
- will replace
cell_info()replacescellInfo()(defunct)change_cellstatus()replaceschangeCellStatus()(defunct)- new function
createRegSDCInput()allows to compute input for e.gRegSDC::SuppressDec - removed S4-class definition
safeObjand related methods- results are stored within
sdcProblem-objects (in slotresults) - rewritten
getInfo()using an internal helper-functionget_safeobj()
- results are stored within
- new function
contributing_indices()- returns contributing units (from raw input data) to a cell
- removed internal helper-function
c_contributing_indices()
- replaced internal S4-method
c_cellIDwith utility-functioncell_id()
- new function
- improved examples, documentation, test-data and unit-tests
- improved and updated documentation
getInfo()andsetInfo() - replaced
microData1.RDataandmicroData2.RData- generation is reproducible in
data-raw - data can be loaded using
data(microdata1)anddata(microdata2)
- generation is reproducible in
- replaced
problem.RDataandproblemWithSupps.RDatawithsdc_testproblem() - better document sdc-code
zinprimarySuppression() - improved and updated vignette (thx to @Krisselack for reporting)
- improved and updated documentation
- remove debugging output
- fixing typos in vignettes
- bugfix in
protectLinkedTables() - remove dependency on package
lpSolveAPI - update singleton-detection procedure by allowing to input a threshold value that must be respected for all simple table rows
- check dominance rules (unweighted variables are used)
- various fixes and improvements in
createJJFormat() - ignore sampling weights in case the input in
makeProblem()is a complete table and not microdata sdcProb2df():if numeric variables are shown; display their weighted values (in case) sampling weights have been specified inmakeProblem
- change in
primarySuppression(): for dominance rule it is now only possible to specify underlying variables by name (using argumentnumVarName) and no longer by index to avoid errors - fixes in primary suppression for dominance rules
- create files from examples in tempdir()
- new function
contributing_indices() - call
.Defunctfor old exported functions - make default bounds (
ub,lb) depend on costs - allow to specify numVarInd also by name via
numVarNamein primarySupression() for dominance rules (p,nkandpq) - make use of sampling weights (by replicating) values for dominance rules.
- don't export unused functionality
createJJFormat()andwriteJJFormat()can be used to create text files with sdcProblems in "JJs Format"- allow to specify variable names too in
makeProblem
- use functionality from
sdcHierarchiesto build hierarchies. - removedcreate_node(); please usehier_create()instead- removed
add_nodes(); please usehier_add()instead - removed
delete_nodes(); please usehier_delete()instead - removed
rename_nodes(); please usehier_rename()instead
- removed
- bugfix when computing indices for contributing units used in some primary suppression methods
- better error messages in case invalid hierarchies have been specified
- update in SIMPLEHEURISTIC-algorithm that now really respects cells (status
"z") that must not be suppressed
- bugfix in SIMPLEHEURISTIC-algorithm
- code cleanup
- updated package vignette
- new functions
create_node(),add_nodes()anddelete_nodes()that allow a dynamic generation of hierarchies. For an example have a look at?makeProblem
- Feature to create BATCH files suitable for tau-argus