• 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
  • Fix singleton-detection procedure in case of existing “dummy-cells” (code "w")
  • Update dependency on Matrix package
  • Make SSBtools::GaussSuppression as method = "GAUSS" available in protectTable()
  • 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 "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
  • rewrite of the "SIMPLEHEURISTIC approach
    • 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_attackerprobs in protectTable and protectLinkedTable
  • bugfix in internal method c_gen_mat_m with 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
  • 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:
  • improved examples, documentation, test-data and unit-tests
    • improved and updated documentation 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)
  • 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 in makeProblem
  • change in primarySuppression(): for dominance rule it is now only possible to specify underlying variables by name (using argument numVarName) 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 .Defunct for old exported functions
  • make default bounds (ub, lb) depend on costs
  • allow to specify numVarInd also by name via numVarName in primarySupression() for dominance rules (p, nk and pq)
  • make use of sampling weights (by replicating) values for dominance rules.
  • don’t export unused functionality
  • createJJFormat() and writeJJFormat() can be used to create text files with sdcProblems in “JJs Format”
  • allow to specify variable names too in makeProblem
  • 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
  • Feature to create BATCH files suitable for tau-argus