Releases: sdcTools/sdcTable
Releases · sdcTools/sdcTable
CRAN release 0.34.0
- 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 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
CRAN release 0.33.0
- Use
highsinstead ofRglpkandglpkAPIfor LP-Solving as package was removed from CRAN
CRAN release 0.32.7
- 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 when using
createArgusInput()
CRAN release 0.32.6
- Improvements in SIMPLEHEURISTIC when adding additional suppressions
- Add
RegSDCas suggested package in order to avoid a CRAN note - Skip Unit-Tests for CRAN only
CRAN release 0.32.5
- Fix singleton-detection procedure in case of existing "dummy-cells" (code "w")
CRAN release 0.32.3
- make
SSBtools::GaussSuppressionasmethod = "GAUSS"available inprotectTable() - updated vignette
- small overall fixes and cleanups
- fix tau-Argus Batchfile creation (
typ = "microdata")) in case aggregate codes are available in raw input data
CRAN release 0.32.2
- 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
CRAN release 0.32.1
- 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 v0.32
sdcTable 0.32
- updates to make use of some features from
sdcHierarchiesinternally - rewrite of the
"SIMPLEHEURISTICapproach- 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 suppressions 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
- based on (full) constraint matrix written using
- Bugfix: internal method
c_gen_mat_mcan deal with single-dimension problems - Dominance rules
- Bugfix: correctly compute measures on weighted data
- allow nk-dominance rules with n=1 (thx @MaximeBeaute for reporting)
- increased performance as contributing-units to cells are computed when first dom-rule is applied
- 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
- Various 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 replaceprotectLinkedTables()in the future and currently calls new function internally) cell_info()replacescellInfo()(defunct)change_cellstatus()replaceschangeCellStatus()(defunct)createRegSDCInput()allows to compute input for e.gRegSDC::SuppressDeccontributing_indices():- returns contributing units (from raw input data) to a cell
- removed internal helper-function
c_contributing_indices()
- new function
- Cleanup
- 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
- replaced internal S4-method
c_cellIDwith utility-functioncell_id()
- removed S4-class definition
- Improved examples, documentation, test-data and unit-tests
- better documentation for
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)
- better documentation for
sdcTable v0.30
sdcTable 0.30
- 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