Changelog
Source:NEWS.md
sdcTable 0.34.0
CRAN release: 2026-05-09
- New parallel processing support:
-
attack()now features ann_workersargument, enabling parallel execution of attacker problems via thefuture.applypackage (if available).
-
-
protectTable()enhancements:- The function now exposes
n_workerswhen usingmethod = "SIMPLEHEURISTIC", allowing parallelized internal attacker calls (passed through toattack()). - Added argument
attack_thresholdformethod = "SIMPLEHEURISTIC". This allows users to define the safety tolerance (asabs(upper - lower) > attack_threshold) directly when protecting tables.
- The function now exposes
- Documentation updates: Added detailed explanations and performance warnings regarding RAM usage for parallel processing in the package vignette and function man-pages.
- Added a
thresholdargument toattack()for more flexible safety checks (defaults to1e-8). - Optimized internal
create_m_matrix()for faster matrix construction and lower memory overhead. - Refactored/Simplified internal parameter-generation
- Added a centralized Cell Status Codes section to
sdcProblemdocumentation, explaining states like"z"(empty cells) and"w". This section is now reused across all functions that modify cell statuses (UserIssue #319) - Significantly optimized
contributing_indices()regarding running-time and memory usage
sdcTable 0.33.0
CRAN release: 2025-06-26
- Use
highsinstead ofRglpkandglpkAPIfor LP-Solving as package was removed from CRAN
sdcTable 0.32.7
CRAN release: 2025-03-11
- 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()
sdcTable 0.32.6
CRAN release: 2023-08-11
- Improvements in
SIMPLEHEURISTICwhen adding additional suppressions - Add
RegSDCas suggested package in order to avoid a CRAN note - Skip Unit-Tests for CRAN only
sdcTable 0.32.5
CRAN release: 2023-05-19
- Fix singleton-detection procedure in case of existing “dummy-cells” (code
"w")
sdcTable 0.32.3
CRAN release: 2022-07-16
- 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
sdcTable 0.32.2
CRAN release: 2021-12-03
- 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
sdcTable 0.32.1
CRAN release: 2021-09-30
- 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
sdcTable 0.32.0
CRAN release: 2021-08-06
- 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
sdcTable 0.31
CRAN release: 2020-03-10
- 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)
sdcTable 0.30
CRAN release: 2019-09-19
- 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
sdcTable 0.29
CRAN release: 2019-08-31
- 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()
sdcTable 0.28
CRAN release: 2019-06-04
- 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
sdcTable 0.27
CRAN release: 2019-02-28
- 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
sdcTable 0.26
CRAN release: 2019-01-18
- bugfix when computing indices for contributing units used in some primary suppression methods
sdcTable 0.25
CRAN release: 2018-11-14
- better error messages in case invalid hierarchies have been specified
sdcTable 0.24
CRAN release: 2018-07-24
- update in SIMPLEHEURISTIC-algorithm that now really respects cells (status
"z") that must not be suppressed
sdcTable 0.23
CRAN release: 2018-06-22
- 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
sdcTable 0.22.x
- Feature to create BATCH files suitable for tau-argus