Skip to content

Releases: sdcTools/sdcTable

CRAN release 0.34.0

09 May 17:16

Choose a tag to compare

  • New parallel processing support:
    • attack() now features an n_workers argument, enabling parallel execution of attacker problems via the future.apply package (if available).
  • protectTable() enhancements:
    • The function now exposes n_workers when using method = "SIMPLEHEURISTIC", allowing parallelized internal attacker calls (passed through to attack()).
    • Added argument attack_threshold for method = "SIMPLEHEURISTIC". This allows users to define the safety tolerance (as abs(upper - lower) > attack_threshold) directly when protecting tables.
  • Documentation updates: Added explanations and performance warnings regarding RAM usage for parallel processing in the package vignette and function man-pages.
  • Added a threshold argument to attack() for more flexible safety checks (defaults to 1e-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 sdcProblem documentation, 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

09 May 17:14

Choose a tag to compare

  • Use highs instead of Rglpk and glpkAPI for LP-Solving as package was removed from CRAN

CRAN release 0.32.7

09 May 17:13

Choose a tag to compare

  • 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

16 Aug 06:32

Choose a tag to compare

  • Improvements in SIMPLEHEURISTIC when adding additional suppressions
  • Add RegSDC as suggested package in order to avoid a CRAN note
  • Skip Unit-Tests for CRAN only

CRAN release 0.32.5

29 Jun 05:39

Choose a tag to compare

  • Fix singleton-detection procedure in case of existing "dummy-cells" (code "w")

CRAN release 0.32.3

19 Jul 11:08

Choose a tag to compare

  • make SSBtools::GaussSuppression as method = "GAUSS" available in protectTable()
  • 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

19 Jul 11:07

Choose a tag to compare

  • 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

19 Jul 11:06

Choose a tag to compare

  • allow invocation of exact previous implementation of "SIMPLEHEURISTIC using method = "SIMPLEHEURISTIC_OLD" in protectTable()
  • 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() and genMatMFull()
  • re-parametrized internal method c_make_att_prob

sdcTable v0.32

10 Aug 04:47

Choose a tag to compare

sdcTable 0.32

  • updates to make use of some features from sdcHierarchies internally
  • rewrite of the "SIMPLEHEURISTIC approach
    • 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_attackerprobs in protectTable and protectLinkedTable
  • Bugfix: internal method c_gen_mat_m can 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
  • Various performance improvements
    • c_quick_suppression() and attack() 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 and currently calls new function internally)
    • cell_info() replaces cellInfo() (defunct)
    • change_cellstatus() replaces changeCellStatus() (defunct)
    • createRegSDCInput() allows to compute input for e.g RegSDC::SuppressDec
    • contributing_indices():
      • returns contributing units (from raw input data) to a cell
      • removed internal helper-function c_contributing_indices()
  • Cleanup
    • removed S4-class definition safeObj and related methods
      • results are stored within sdcProblem-objects (in slot results)
      • rewritten getInfo() using an internal helper-function get_safeobj()
    • replaced internal S4-method c_cellID with utility-function cell_id()
  • Improved examples, documentation, test-data and unit-tests
    • better documentation for getInfo() and setInfo()
    • replaced microData1.RData and microData2.RData
      • generation is reproducible in data-raw
      • data can be loaded using data(microdata1) and data(microdata2)
    • replaced problem.RData and problemWithSupps.RData with sdc_testproblem()
    • better document sdc-code z in primarySuppression()
    • improved and updated vignette (thx to @Krisselack for reporting)

sdcTable v0.30

20 Sep 05:50

Choose a tag to compare

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 in makeProblem