Two-way iteration variant of GaussSuppressionFromData
Source: R/GaussSuppressionTwoWay.R
GaussSuppressionTwoWay.Rd
Internally, data is organized in a two-way table.
Use parameter colVar
to choose hierarchies for columns (others will be rows). Iterations start by column by column suppression.
The algorithm utilizes HierarchyCompute2
.
With two-way iterations, larger data can be handled, but there is a residual risk.
The method is a special form of linked-table iteration.
Separately, the rows and columns are protected by GaussSuppression
and they have common suppressed cells.
Usage
GaussSuppressionTwoWay(
data,
dimVar = NULL,
freqVar = NULL,
numVar = NULL,
weightVar = NULL,
charVar = NULL,
hierarchies,
formula = NULL,
maxN = suppressWarnings(formals(c(primary)[[1]])$maxN),
protectZeros = suppressWarnings(formals(c(primary)[[1]])$protectZeros),
secondaryZeros = suppressWarnings(formals(candidates)$secondaryZeros),
candidates = CandidatesDefault,
primary = PrimaryDefault,
forced = NULL,
hidden = NULL,
singleton = SingletonDefault,
singletonMethod = ifelse(secondaryZeros, "anySumNOTprimary", "anySum"),
printInc = TRUE,
output = "publish",
preAggregate = is.null(freqVar),
colVar = names(hierarchies)[1],
removeEmpty = TRUE,
inputInOutput = TRUE,
candidatesFromTotal = TRUE,
structuralEmpty = FALSE,
freqVarNew = rev(make.unique(c(names(data), "freq")))[1],
...
)
Arguments
- data
Input data as a data frame
- dimVar
The main dimensional variables and additional aggregating variables. This parameter can be useful when hierarchies and formula are unspecified.
- freqVar
A single variable holding counts (name or number).
- numVar
Other numerical variables to be aggregated
- weightVar
weightVar Weights (costs) to be used to order candidates for secondary suppression
- charVar
Other variables possibly to be used within the supplied functions
- hierarchies
List of hierarchies, which can be converted by
AutoHierarchies
. Thus, the variables can also be coded by"rowFactor"
or""
, which correspond to using the categories in the data.- formula
A model formula
- maxN
Suppression parameter. See
GaussSuppressionFromData
.- protectZeros
Suppression parameter. See
GaussSuppressionFromData
.- secondaryZeros
Suppression parameter. See
GaussSuppressionFromData
.- candidates
GaussSuppression input or a function generating it (see details) Default:
CandidatesDefault
- primary
GaussSuppression input or a function generating it (see details) Default:
PrimaryDefault
- forced
GaussSuppression input or a function generating it (see details)
GaussSuppression input or a function generating it (see details)
- singleton
NULL or a function generating GaussSuppression input (logical vector not possible) Default:
SingletonDefault
- singletonMethod
GaussSuppression
input- printInc
GaussSuppression
input- output
One of
"publish"
(default),"inner"
. Here "inner" means input data (possibly pre-aggregated).- preAggregate
When
TRUE
, the data will be aggregated within the function to an appropriate level. This is defined by the dimensional variables according todimVar
,hierarchies
orformula
and in additioncharVar
.- colVar
Hierarchy variables for the column groups (others in row group).
- removeEmpty
When TRUE (default) empty output corresponding to empty input is removed. When NULL, removal only within the algorithm (x matrices) so that such empty outputs are never secondary suppressed.
- inputInOutput
Logical vector (possibly recycled) for each element of hierarchies. TRUE means that codes from input are included in output. Values corresponding to
"rowFactor"
or""
are ignored.- candidatesFromTotal
When TRUE (default), same candidates for all rows and for all columns, computed from row/column totals.
- structuralEmpty
See
GaussSuppressionFromData
.- freqVarNew
Name of new frequency variable generated when input
freqVar
is NULL andpreAggregate
is TRUE. Default is"freq"
provided this is not found innames(data)
.- ...
Further arguments to be passed to the supplied functions.
Details
The supplied functions for generating GaussSuppression
input behave as in GaussSuppressionFromData
with some exceptions.
When candidatesFromTotal
is TRUE
(default) the candidate function will be run locally once for rows and once for columns. Each time based on column or row totals.
The global x-matrix will only be generated if one of the functions supplied needs it.
Non-NULL singleton can only be supplied as a function. This function will be run locally within the algorithm before each call to GaussSuppression
.
Note that a difference from GaussSuppressionFromData
is that parameter removeEmpty
is set to TRUE
by default.
Another difference is that duplicated combinations is not allowed. Normally duplicates are avoided by setting preAggregate
to TRUE
.
When the charVar
parameter is used, this can still be a problem. See the examples for a possible workaround.
Examples
z3 <- SSBtoolsData("z3")
dimListsA <- SSBtools::FindDimLists(z3[, 1:6])
dimListsB <- SSBtools::FindDimLists(z3[, c(1, 4, 5)])
set.seed(123)
z <- z3[sample(nrow(z3),250),]
if (FALSE) { # \dontrun{
out1 <- GaussSuppressionTwoWay(z, freqVar = "ant", hierarchies = dimListsA,
colVar = c("hovedint"))
} # }
out2 <- GaussSuppressionTwoWay(z, freqVar = "ant", hierarchies = dimListsA,
colVar = c("hovedint", "mnd"))
#> 447-primary-suppressed
#>
#> col 1 , 10 extra : GaussSuppression_anySum: ..................
#> col 2 , 11 extra : GaussSuppression_anySum: ...................
#> col 4 , 4 extra : GaussSuppression_anySum: .........................
#> col 5 , 7 extra : GaussSuppression_anySum: ......................................
#> col 6 , 20 extra : GaussSuppression_anySum: ...........
#> col 7 , 24 extra : GaussSuppression_anySum: .........
#> col 8 , 16 extra : GaussSuppression_anySum: ................
#> col 9 , 17 extra : GaussSuppression_anySum: ..............
#> col 10 , 16 extra : GaussSuppression_anySum: ............................
#> col 11 , 28 extra : GaussSuppression_anySum: ........
#> col 12 , 23 extra : GaussSuppression_anySum: ..........
#> col 13 , 15 extra : GaussSuppression_anySum: ................
#> col 14 , 20 extra : GaussSuppression_anySum: ..............
#> col 15 , 21 extra : GaussSuppression_anySum: ........................
#> col 16 , 10 extra : GaussSuppression_anySum: ..................
#> col 17 , 11 extra : GaussSuppression_anySum: ...................
#> col 19 , 4 extra : GaussSuppression_anySum: .........................
#> col 20 , 7 extra : GaussSuppression_anySum: ......................................
#> col 21 , 28 extra : GaussSuppression_anySum: ..............
#> col 22 , 29 extra : GaussSuppression_anySum: .............
#> col 23 , 18 extra : GaussSuppression_anySum: .......................
#> col 24 , 20 extra : GaussSuppression_anySum: .......................
#> col 25 , 10 extra : GaussSuppression_anySum: ...................................
#> col 26 , 24 extra : GaussSuppression_anySum: .....................
#> col 27 , 22 extra : GaussSuppression_anySum: .......................
#> col 28 , 12 extra : GaussSuppression_anySum: .................................
#> col 29 , 15 extra : GaussSuppression_anySum: ..............................
#> col 30 , 5 extra : GaussSuppression_anySum: ........................................
#> 447-primary-suppressed
#> iter-1-col-468-suppressed
#>
#> row 1 , 14 extra : GaussSuppression_anySum: .....
#> row 2 , 1 extra : GaussSuppression_anySum: .................
#> row 3 , 12 extra : GaussSuppression_anySum: .......
#> row 4 , 14 extra : GaussSuppression_anySum: ........
#> row 5 , 3 extra : GaussSuppression_anySum: ..............
#> row 6 , 13 extra : GaussSuppression_anySum: ..........
#> row 7 , 2 extra : GaussSuppression_anySum: ............
#> row 8 , 23 extra : GaussSuppression_anySum: ..
#> row 9 , 11 extra : GaussSuppression_anySum: .....
#> row 10 , 24 extra : GaussSuppression_anySum: ..
#> row 11 , 9 extra : GaussSuppression_anySum: .........
#> row 12 , 4 extra : GaussSuppression_anySum: ................
#> row 13 , 5 extra : GaussSuppression_anySum: .................
#> row 14 , 11 extra : GaussSuppression_anySum: ............
#> row 15 , 15 extra : GaussSuppression_anySum: .......
#> row 16 , 16 extra : GaussSuppression_anySum: .......
#> row 17 , 15 extra : GaussSuppression_anySum: ..........
#> row 18 , 13 extra : GaussSuppression_anySum: ........
#> row 19 , 7 extra : GaussSuppression_anySum: ................
#> row 20 , 3 extra : GaussSuppression_anySum: .............
#> row 21 , 8 extra : GaussSuppression_anySum: ..............
#> row 22 , 17 extra : GaussSuppression_anySum: ......
#> row 23 , 14 extra : GaussSuppression_anySum: ..
#> row 24 , 16 extra : GaussSuppression_anySum: ..
#> row 25 , 24 extra : GaussSuppression_anySum: ...
#> row 26 , 7 extra : GaussSuppression_anySum: ...............
#> row 27 , 13 extra : GaussSuppression_anySum: ......
#> row 28 , 17 extra : GaussSuppression_anySum: ......
#> row 29 , 12 extra : GaussSuppression_anySum: ............
#> row 30 , 7 extra : GaussSuppression_anySum: ...........
#> row 31 , 14 extra : GaussSuppression_anySum: ......
#> row 32 , 16 extra : GaussSuppression_anySum: ....
#> row 33 , 8 extra : GaussSuppression_anySum: .................
#> row 34 , 9 extra : GaussSuppression_anySum: ..............
#> row 35 , 13 extra : GaussSuppression_anySum: .......
#> row 36 , 17 extra : GaussSuppression_anySum: ..
#> row 37 , 5 extra : GaussSuppression_anySum: ....................
#> row 43 , 18 extra : GaussSuppression_anySum: .........
#> row 44 , 18 extra : GaussSuppression_anySum: .........
#> 447-primary-suppressed
#> iter-1-col-468-suppressed
#> iter-1-row-573-suppressed
#>
#> col 1 , 2 extra : GaussSuppression_anySum: ...............
#> col 2 , 3 extra : GaussSuppression_anySum: ...............
#> col 3 , 5 extra : GaussSuppression_anySum: .........................
#> col 4 , 9 extra : GaussSuppression_anySum: ...............
#> col 5 , 7 extra : GaussSuppression_anySum: ..............................
#> col 6 , 2 extra : GaussSuppression_anySum: .........
#> col 8 , 6 extra : GaussSuppression_anySum: .........
#> col 9 , 2 extra : GaussSuppression_anySum: ............
#> col 10 , 6 extra : GaussSuppression_anySum: ......................
#> col 12 , 1 extra : GaussSuppression_anySum: .........
#> col 13 , 4 extra : GaussSuppression_anySum: ............
#> col 14 , 1 extra : GaussSuppression_anySum: ............
#> col 15 , 5 extra : GaussSuppression_anySum: ..................
#> col 16 , 2 extra : GaussSuppression_anySum: ...............
#> col 17 , 3 extra : GaussSuppression_anySum: ...............
#> col 18 , 5 extra : GaussSuppression_anySum: .........................
#> col 19 , 9 extra : GaussSuppression_anySum: ...............
#> col 20 , 7 extra : GaussSuppression_anySum: ..............................
#> col 21 , 1 extra : GaussSuppression_anySum: ............
#> col 22 , 3 extra : GaussSuppression_anySum: ..........
#> col 23 , 1 extra : GaussSuppression_anySum: ......................
#> col 24 , 3 extra : GaussSuppression_anySum: ...................
#> col 25 , 3 extra : GaussSuppression_anySum: ..............................
#> col 26 , 5 extra : GaussSuppression_anySum: ...............
#> col 27 , 8 extra : GaussSuppression_anySum: ..............
#> col 29 , 2 extra : GaussSuppression_anySum: ............................
#> 447-primary-suppressed
#> iter-1-col-468-suppressed
#> iter-1-row-573-suppressed
#> iter-2-col-581-suppressed
#>
#> row 9 , 2 extra : GaussSuppression_anySum: ...
#> row 13 , 2 extra : GaussSuppression_anySum: .............
#> row 18 , 2 extra : GaussSuppression_anySum: ....
#> row 34 , 2 extra : GaussSuppression_anySum: ..........
#> 447-primary-suppressed
#> iter-1-col-468-suppressed
#> iter-1-row-573-suppressed
#> iter-2-col-581-suppressed
#> iter-2-row-589-suppressed
#>
#> col 1 , 2 extra : GaussSuppression_anySum: .............
#> col 9 , 1 extra : GaussSuppression_anySum: ...........
#> col 16 , 2 extra : GaussSuppression_anySum: .............
#> col 23 , 1 extra : GaussSuppression_anySum: .....................
#> col 24 , 1 extra : GaussSuppression_anySum: ..................
#> col 28 , 1 extra : GaussSuppression_anySum: ..............................
#> 447-primary-suppressed
#> iter-1-col-468-suppressed
#> iter-1-row-573-suppressed
#> iter-2-col-581-suppressed
#> iter-2-row-589-suppressed
#> iter-3-col-589-suppressed
#>
#> 447-primary-suppressed
#> iter-1-col-468-suppressed
#> iter-1-row-573-suppressed
#> iter-2-col-581-suppressed
#> iter-2-row-589-suppressed
#> iter-3-col-589-suppressed
#> iter-3-row-589-suppressed
#>
out3 <- GaussSuppressionTwoWay(z, freqVar = "ant", hierarchies = dimListsB,
colVar = c("region"))
#> 284-primary-suppressed
#>
#> col 1 , 9 extra : GaussSuppression_anySum: .....
#> col 2 , 1 extra : GaussSuppression_anySum: ...............
#> col 3 , 8 extra : GaussSuppression_anySum: ......
#> col 4 , 10 extra : GaussSuppression_anySum: .......
#> col 5 , 2 extra : GaussSuppression_anySum: ............
#> col 6 , 9 extra : GaussSuppression_anySum: .........
#> col 7 , 1 extra : GaussSuppression_anySum: ............
#> col 8 , 16 extra : GaussSuppression_anySum: ..
#> col 9 , 7 extra : GaussSuppression_anySum: .....
#> col 10 , 16 extra : GaussSuppression_anySum: ..
#> col 11 , 5 extra : GaussSuppression_anySum: .........
#> col 12 , 3 extra : GaussSuppression_anySum: ..............
#> col 13 , 3 extra : GaussSuppression_anySum: ...............
#> col 14 , 8 extra : GaussSuppression_anySum: ..........
#> col 15 , 10 extra : GaussSuppression_anySum: ......
#> col 16 , 11 extra : GaussSuppression_anySum: ......
#> col 17 , 10 extra : GaussSuppression_anySum: .........
#> col 18 , 7 extra : GaussSuppression_anySum: ..........
#> col 19 , 5 extra : GaussSuppression_anySum: ..............
#> col 20 , 2 extra : GaussSuppression_anySum: ............
#> col 21 , 6 extra : GaussSuppression_anySum: .............
#> col 22 , 11 extra : GaussSuppression_anySum: ......
#> col 23 , 9 extra : GaussSuppression_anySum: ..
#> col 24 , 11 extra : GaussSuppression_anySum: ..
#> col 25 , 14 extra : GaussSuppression_anySum: ....
#> col 26 , 5 extra : GaussSuppression_anySum: .............
#> col 27 , 8 extra : GaussSuppression_anySum: ......
#> col 28 , 9 extra : GaussSuppression_anySum: .......
#> col 29 , 9 extra : GaussSuppression_anySum: ..........
#> col 30 , 6 extra : GaussSuppression_anySum: .........
#> col 31 , 10 extra : GaussSuppression_anySum: .....
#> col 32 , 11 extra : GaussSuppression_anySum: ...
#> col 33 , 6 extra : GaussSuppression_anySum: ..............
#> col 34 , 6 extra : GaussSuppression_anySum: ............
#> col 35 , 8 extra : GaussSuppression_anySum: ........
#> col 36 , 12 extra : GaussSuppression_anySum: ..
#> 284-primary-suppressed
#> iter-1-col-341-suppressed
#>
#> row 1 , 12 extra : GaussSuppression_anySum: .........
#> row 2 , 12 extra : GaussSuppression_anySum: ...........
#> row 3 , 4 extra : GaussSuppression_anySum: ...................
#> row 4 , 11 extra : GaussSuppression_anySum: ..........
#> row 5 , 10 extra : GaussSuppression_anySum: ...........................
#> row 6 , 19 extra : GaussSuppression_anySum: ....
#> row 7 , 22 extra : GaussSuppression_anySum: ...
#> row 8 , 19 extra : GaussSuppression_anySum: .....
#> row 9 , 17 extra : GaussSuppression_anySum: .......
#> row 10 , 22 extra : GaussSuppression_anySum: ..............
#> row 11 , 25 extra : GaussSuppression_anySum: ...
#> row 12 , 20 extra : GaussSuppression_anySum: .....
#> row 13 , 16 extra : GaussSuppression_anySum: .......
#> row 14 , 19 extra : GaussSuppression_anySum: .......
#> row 15 , 25 extra : GaussSuppression_anySum: ............
#> row 16 , 27 extra : GaussSuppression_anySum: ..........
#> row 17 , 27 extra : GaussSuppression_anySum: ..........
#> row 18 , 12 extra : GaussSuppression_anySum: .........................
#> row 19 , 17 extra : GaussSuppression_anySum: ....................
#> row 20 , 5 extra : GaussSuppression_anySum: ................................
#> 284-primary-suppressed
#> iter-1-col-341-suppressed
#> iter-1-row-341-suppressed
#>
out4 <- GaussSuppressionTwoWay(z, freqVar = "ant", hierarchies = dimListsB,
colVar = c("hovedint", "region"))
#> 284-primary-suppressed
#>
#> col 1 , 2 extra : GaussSuppression_anySum: ..
#> col 2 , 1 extra : GaussSuppression_anySum: ...
#> col 3 , 2 extra : GaussSuppression_anySum: ..
#> col 4 , 4 extra : GaussSuppression_anySum:
#> col 6 , 2 extra : GaussSuppression_anySum: ..
#> col 7 , 1 extra : GaussSuppression_anySum: ...
#> col 8 , 2 extra : GaussSuppression_anySum: ..
#> col 9 , 2 extra : GaussSuppression_anySum: ..
#> col 10 , 3 extra : GaussSuppression_anySum: .
#> col 11 , 2 extra : GaussSuppression_anySum: ..
#> col 12 , 1 extra : GaussSuppression_anySum: ...
#> col 13 , 1 extra : GaussSuppression_anySum: ...
#> col 14 , 2 extra : GaussSuppression_anySum: ..
#> col 15 , 4 extra : GaussSuppression_anySum:
#> col 16 , 2 extra : GaussSuppression_anySum: ..
#> col 17 , 2 extra : GaussSuppression_anySum: ..
#> col 18 , 3 extra : GaussSuppression_anySum: .
#> col 19 , 2 extra : GaussSuppression_anySum: ..
#> col 20 , 3 extra : GaussSuppression_anySum: .
#> col 21 , 4 extra : GaussSuppression_anySum:
#> col 22 , 2 extra : GaussSuppression_anySum: ..
#> col 23 , 2 extra : GaussSuppression_anySum: ..
#> col 24 , 3 extra : GaussSuppression_anySum: .
#> col 25 , 1 extra : GaussSuppression_anySum: ...
#> col 26 , 2 extra : GaussSuppression_anySum: ..
#> col 27 , 2 extra : GaussSuppression_anySum: ..
#> col 28 , 3 extra : GaussSuppression_anySum: .
#> col 29 , 3 extra : GaussSuppression_anySum: .
#> col 30 , 2 extra : GaussSuppression_anySum: ..
#> col 31 , 4 extra : GaussSuppression_anySum:
#> col 32 , 2 extra : GaussSuppression_anySum: ..
#> col 33 , 1 extra : GaussSuppression_anySum: ...
#> col 34 , 3 extra : GaussSuppression_anySum: .
#> col 36 , 2 extra : GaussSuppression_anySum: ..
#> col 37 , 1 extra : GaussSuppression_anySum: ...
#> col 38 , 2 extra : GaussSuppression_anySum: ..
#> col 39 , 1 extra : GaussSuppression_anySum: ...
#> col 40 , 3 extra : GaussSuppression_anySum: .
#> col 42 , 3 extra : GaussSuppression_anySum: .
#> col 43 , 2 extra : GaussSuppression_anySum: ..
#> col 44 , 2 extra : GaussSuppression_anySum: ..
#> col 45 , 2 extra : GaussSuppression_anySum: ..
#> col 46 , 1 extra : GaussSuppression_anySum: ...
#> col 47 , 2 extra : GaussSuppression_anySum: ..
#> col 48 , 3 extra : GaussSuppression_anySum: .
#> col 49 , 3 extra : GaussSuppression_anySum: .
#> col 50 , 4 extra : GaussSuppression_anySum:
#> col 51 , 3 extra : GaussSuppression_anySum: .
#> col 52 , 2 extra : GaussSuppression_anySum: ..
#> col 53 , 1 extra : GaussSuppression_anySum: ...
#> col 55 , 2 extra : GaussSuppression_anySum: ..
#> col 56 , 2 extra : GaussSuppression_anySum: ..
#> col 57 , 2 extra : GaussSuppression_anySum: ..
#> col 58 , 2 extra : GaussSuppression_anySum: ..
#> col 59 , 3 extra : GaussSuppression_anySum: .
#> col 60 , 2 extra : GaussSuppression_anySum: ..
#> col 61 , 2 extra : GaussSuppression_anySum: ..
#> col 62 , 2 extra : GaussSuppression_anySum: ..
#> col 63 , 3 extra : GaussSuppression_anySum: .
#> col 64 , 2 extra : GaussSuppression_anySum: ..
#> col 65 , 2 extra : GaussSuppression_anySum: ..
#> col 66 , 2 extra : GaussSuppression_anySum: ..
#> col 67 , 2 extra : GaussSuppression_anySum: ..
#> col 68 , 2 extra : GaussSuppression_anySum: ..
#> col 69 , 3 extra : GaussSuppression_anySum: .
#> col 70 , 2 extra : GaussSuppression_anySum: ..
#> col 72 , 2 extra : GaussSuppression_anySum: ..
#> col 74 , 2 extra : GaussSuppression_anySum: ..
#> col 77 , 1 extra : GaussSuppression_anySum: ...
#> col 79 , 3 extra : GaussSuppression_anySum: .
#> col 81 , 3 extra : GaussSuppression_anySum: .
#> col 83 , 1 extra : GaussSuppression_anySum: ...
#> col 85 , 1 extra : GaussSuppression_anySum: ...
#> col 86 , 2 extra : GaussSuppression_anySum: ..
#> col 87 , 1 extra : GaussSuppression_anySum: ...
#> col 88 , 2 extra : GaussSuppression_anySum: ..
#> col 93 , 1 extra : GaussSuppression_anySum: ...
#> col 94 , 2 extra : GaussSuppression_anySum: ..
#> col 95 , 2 extra : GaussSuppression_anySum: ..
#> col 97 , 2 extra : GaussSuppression_anySum: ..
#> col 98 , 2 extra : GaussSuppression_anySum: ..
#> col 101 , 2 extra : GaussSuppression_anySum: ..
#> col 102 , 2 extra : GaussSuppression_anySum: ..
#> col 103 , 2 extra : GaussSuppression_anySum: ..
#> col 105 , 1 extra : GaussSuppression_anySum: ...
#> col 106 , 3 extra : GaussSuppression_anySum: .
#> col 108 , 1 extra : GaussSuppression_anySum: ...
#> col 110 , 2 extra : GaussSuppression_anySum: ..
#> col 111 , 2 extra : GaussSuppression_anySum: ..
#> col 112 , 1 extra : GaussSuppression_anySum: ...
#> col 113 , 2 extra : GaussSuppression_anySum: ..
#> col 115 , 4 extra : GaussSuppression_anySum:
#> col 116 , 2 extra : GaussSuppression_anySum: ..
#> col 117 , 4 extra : GaussSuppression_anySum:
#> col 119 , 1 extra : GaussSuppression_anySum: ...
#> col 121 , 2 extra : GaussSuppression_anySum: ..
#> col 122 , 2 extra : GaussSuppression_anySum: ..
#> col 123 , 2 extra : GaussSuppression_anySum: ..
#> col 124 , 2 extra : GaussSuppression_anySum: ..
#> col 125 , 1 extra : GaussSuppression_anySum: ...
#> col 128 , 2 extra : GaussSuppression_anySum: ..
#> col 129 , 2 extra : GaussSuppression_anySum: ..
#> col 130 , 2 extra : GaussSuppression_anySum: ..
#> col 131 , 4 extra : GaussSuppression_anySum:
#> col 132 , 2 extra : GaussSuppression_anySum: ..
#> col 133 , 1 extra : GaussSuppression_anySum: ...
#> col 134 , 1 extra : GaussSuppression_anySum: ...
#> col 135 , 2 extra : GaussSuppression_anySum: ..
#> col 137 , 2 extra : GaussSuppression_anySum: ..
#> col 139 , 3 extra : GaussSuppression_anySum: .
#> col 141 , 3 extra : GaussSuppression_anySum: .
#> col 143 , 2 extra : GaussSuppression_anySum: ..
#> col 145 , 1 extra : GaussSuppression_anySum: ...
#> col 146 , 2 extra : GaussSuppression_anySum: ..
#> col 148 , 1 extra : GaussSuppression_anySum: ...
#> col 150 , 4 extra : GaussSuppression_anySum:
#> col 151 , 1 extra : GaussSuppression_anySum: ...
#> col 152 , 4 extra : GaussSuppression_anySum:
#> col 153 , 1 extra : GaussSuppression_anySum: ...
#> col 156 , 1 extra : GaussSuppression_anySum: ...
#> col 157 , 1 extra : GaussSuppression_anySum: ...
#> col 158 , 2 extra : GaussSuppression_anySum: ..
#> col 159 , 1 extra : GaussSuppression_anySum: ...
#> col 160 , 1 extra : GaussSuppression_anySum: ...
#> col 163 , 1 extra : GaussSuppression_anySum: ...
#> col 164 , 2 extra : GaussSuppression_anySum: ..
#> col 165 , 3 extra : GaussSuppression_anySum: .
#> col 166 , 3 extra : GaussSuppression_anySum: .
#> col 167 , 2 extra : GaussSuppression_anySum: ..
#> col 169 , 1 extra : GaussSuppression_anySum: ...
#> col 170 , 2 extra : GaussSuppression_anySum: ..
#> col 171 , 1 extra : GaussSuppression_anySum: ...
#> col 172 , 1 extra : GaussSuppression_anySum: ...
#> col 173 , 2 extra : GaussSuppression_anySum: ..
#> col 174 , 3 extra : GaussSuppression_anySum: .
#> col 177 , 1 extra : GaussSuppression_anySum: ...
#> col 178 , 4 extra : GaussSuppression_anySum:
#> 284-primary-suppressed
#> iter-1-col-321-suppressed
#>
#> row 1 , 48 extra : GaussSuppression_anySum: .................................
#> row 2 , 97 extra : GaussSuppression_anySum: ..........................
#> row 3 , 100 extra : GaussSuppression_anySum: ................................
#> row 4 , 76 extra : GaussSuppression_anySum: .........................
#> 284-primary-suppressed
#> iter-1-col-321-suppressed
#> iter-1-row-352-suppressed
#>
#> col 5 , 1 extra : GaussSuppression_anySum: ..
#> col 12 , 1 extra : GaussSuppression_anySum: .
#> col 13 , 1 extra : GaussSuppression_anySum: .
#> col 25 , 1 extra : GaussSuppression_anySum: .
#> col 32 , 1 extra : GaussSuppression_anySum: .
#> col 38 , 1 extra : GaussSuppression_anySum: .
#> col 40 , 1 extra : GaussSuppression_anySum:
#> col 41 , 1 extra : GaussSuppression_anySum: ..
#> col 53 , 1 extra : GaussSuppression_anySum: .
#> col 54 , 1 extra : GaussSuppression_anySum: ..
#> col 55 , 1 extra : GaussSuppression_anySum: .
#> col 73 , 1 extra : GaussSuppression_anySum: ...
#> col 78 , 1 extra : GaussSuppression_anySum: ..
#> col 84 , 1 extra : GaussSuppression_anySum: ...
#> col 89 , 1 extra : GaussSuppression_anySum: ...
#> col 91 , 1 extra : GaussSuppression_anySum: ...
#> col 104 , 2 extra : GaussSuppression_anySum: ..
#> col 109 , 1 extra : GaussSuppression_anySum: ...
#> col 118 , 1 extra : GaussSuppression_anySum: ..
#> col 120 , 2 extra : GaussSuppression_anySum: ..
#> col 123 , 1 extra : GaussSuppression_anySum: .
#> col 125 , 1 extra : GaussSuppression_anySum: .
#> col 132 , 1 extra : GaussSuppression_anySum: .
#> col 135 , 1 extra : GaussSuppression_anySum: .
#> col 136 , 1 extra : GaussSuppression_anySum: ..
#> col 140 , 1 extra : GaussSuppression_anySum: ..
#> col 143 , 1 extra : GaussSuppression_anySum: .
#> col 145 , 1 extra : GaussSuppression_anySum: .
#> col 147 , 1 extra : GaussSuppression_anySum: ...
#> 284-primary-suppressed
#> iter-1-col-321-suppressed
#> iter-1-row-352-suppressed
#> iter-2-col-365-suppressed
#>
#> row 1 , 1 extra : GaussSuppression_anySum: ..........................
#> row 2 , 3 extra : GaussSuppression_anySum: ...................
#> row 3 , 4 extra : GaussSuppression_anySum: ........................
#> row 4 , 5 extra : GaussSuppression_anySum: ..............................
#> 284-primary-suppressed
#> iter-1-col-321-suppressed
#> iter-1-row-352-suppressed
#> iter-2-col-365-suppressed
#> iter-2-row-368-suppressed
#>
#> col 39 , 1 extra : GaussSuppression_anySum: .
#> col 73 , 1 extra : GaussSuppression_anySum: .
#> col 126 , 1 extra : GaussSuppression_anySum: ..
#> 284-primary-suppressed
#> iter-1-col-321-suppressed
#> iter-1-row-352-suppressed
#> iter-2-col-365-suppressed
#> iter-2-row-368-suppressed
#> iter-3-col-369-suppressed
#>
#> row 3 , 1 extra : GaussSuppression_anySum: .......................
#> 284-primary-suppressed
#> iter-1-col-321-suppressed
#> iter-1-row-352-suppressed
#> iter-2-col-365-suppressed
#> iter-2-row-368-suppressed
#> iter-3-col-369-suppressed
#> iter-3-row-369-suppressed
#>
# "mnd" not in hierarchies -> duplicated combinations in input
# Error when preAggregate is FALSE: Index method failed. Duplicated combinations?
out5 <- GaussSuppressionTwoWay(z, freqVar = "ant", hierarchies = dimListsA[1:3],
protectZeros = FALSE, colVar = c("hovedint"), preAggregate = TRUE)
#> [preAggregate 250*7->138*3]
#> 57-primary-suppressed
#>
#> col 1 , 19 extra : GaussSuppression_anySum: ..........................
#> col 2 , 13 extra : GaussSuppression_anySum: ................................
#> col 3 , 11 extra : GaussSuppression_anySum: ..................................
#> col 4 , 9 extra : GaussSuppression_anySum: ....................................
#> col 5 , 5 extra : GaussSuppression_anySum: ........................................
#> 57-primary-suppressed
#> iter-1-col-64-suppressed
#>
#> row 1 , 2 extra : GaussSuppression_anySum: ...
#> row 3 , 2 extra : GaussSuppression_anySum: ...
#> row 4 , 2 extra : GaussSuppression_anySum: ...
#> row 6 , 1 extra : GaussSuppression_anySum: ....
#> row 8 , 3 extra : GaussSuppression_anySum: ..
#> row 9 , 3 extra : GaussSuppression_anySum: ..
#> row 10 , 3 extra : GaussSuppression_anySum: ..
#> row 13 , 1 extra : GaussSuppression_anySum: ....
#> row 14 , 2 extra : GaussSuppression_anySum: ...
#> row 15 , 3 extra : GaussSuppression_anySum: ..
#> row 16 , 2 extra : GaussSuppression_anySum: ...
#> row 17 , 2 extra : GaussSuppression_anySum: ...
#> row 18 , 2 extra : GaussSuppression_anySum: ...
#> row 19 , 1 extra : GaussSuppression_anySum: ....
#> row 21 , 1 extra : GaussSuppression_anySum: ....
#> row 22 , 1 extra : GaussSuppression_anySum: ....
#> row 23 , 3 extra : GaussSuppression_anySum: ..
#> row 24 , 2 extra : GaussSuppression_anySum: ...
#> row 25 , 5 extra : GaussSuppression_anySum:
#> row 27 , 4 extra : GaussSuppression_anySum: .
#> row 28 , 1 extra : GaussSuppression_anySum: ....
#> row 29 , 2 extra : GaussSuppression_anySum: ...
#> row 30 , 1 extra : GaussSuppression_anySum: ....
#> row 31 , 2 extra : GaussSuppression_anySum: ...
#> row 32 , 3 extra : GaussSuppression_anySum: ..
#> row 34 , 1 extra : GaussSuppression_anySum: ....
#> row 35 , 3 extra : GaussSuppression_anySum: ..
#> row 36 , 2 extra : GaussSuppression_anySum: ...
#> row 43 , 2 extra : GaussSuppression_anySum: ...
#> row 44 , 2 extra : GaussSuppression_anySum: ...
#> 57-primary-suppressed
#> iter-1-col-64-suppressed
#> iter-1-row-73-suppressed
#>
#> col 1 , 4 extra : GaussSuppression_anySum: .....................
#> col 2 , 5 extra : GaussSuppression_anySum: .........................
#> 57-primary-suppressed
#> iter-1-col-64-suppressed
#> iter-1-row-73-suppressed
#> iter-2-col-73-suppressed
#>
#> 57-primary-suppressed
#> iter-1-col-64-suppressed
#> iter-1-row-73-suppressed
#> iter-2-col-73-suppressed
#> iter-2-row-73-suppressed
#>
# charVar needed -> Still problem when preAggregate is TRUE
# Possible workaround by extra hierarchy
out6 <- GaussSuppressionTwoWay(z, freqVar = "ant", charVar = "mnd2",
hierarchies = c(dimListsA[1:3], mnd2 = "Total"), # include charVar
inputInOutput = c(TRUE, TRUE, FALSE), # FALSE -> only Total
protectZeros = FALSE, colVar = c("hovedint"),
preAggregate = TRUE,
hidden = function(x, data, charVar, ...)
as.vector((Matrix::t(x) %*% as.numeric(data[[charVar]] == "M06M12")) == 0))
#> [preAggregate 250*7->200*4]
#> 57-primary-suppressed
#>
#> col 1 , 19 extra : GaussSuppression_anySum: .........................
#> col 2 , 13 extra : GaussSuppression_anySum: ..............................
#> col 3 , 11 extra : GaussSuppression_anySum: .............................
#> col 4 , 9 extra : GaussSuppression_anySum: ...................................
#> col 5 , 5 extra : GaussSuppression_anySum: ........................................
#> 57-primary-suppressed
#> iter-1-col-62-suppressed
#>
#> row 1 , 2 extra : GaussSuppression_anySum: ...
#> row 3 , 2 extra : GaussSuppression_anySum: ...
#> row 4 , 2 extra : GaussSuppression_anySum: ..
#> row 6 , 1 extra : GaussSuppression_anySum: ....
#> row 8 , 3 extra : GaussSuppression_anySum: ..
#> row 9 , 3 extra : GaussSuppression_anySum: .
#> row 10 , 3 extra : GaussSuppression_anySum: ..
#> row 13 , 1 extra : GaussSuppression_anySum: ....
#> row 14 , 2 extra : GaussSuppression_anySum: ...
#> row 15 , 3 extra : GaussSuppression_anySum: ..
#> row 16 , 2 extra : GaussSuppression_anySum: ...
#> row 17 , 2 extra : GaussSuppression_anySum: ...
#> row 18 , 1 extra : GaussSuppression_anySum: ....
#> row 19 , 1 extra : GaussSuppression_anySum: ....
#> row 21 , 1 extra : GaussSuppression_anySum: ....
#> row 22 , 1 extra : GaussSuppression_anySum: ....
#> row 23 , 3 extra : GaussSuppression_anySum: ..
#> row 24 , 2 extra : GaussSuppression_anySum: ...
#> row 25 , 5 extra : GaussSuppression_anySum:
#> row 27 , 4 extra : GaussSuppression_anySum: .
#> row 28 , 1 extra : GaussSuppression_anySum: ....
#> row 29 , 2 extra : GaussSuppression_anySum: ...
#> row 30 , 1 extra : GaussSuppression_anySum: ...
#> row 31 , 2 extra : GaussSuppression_anySum: ...
#> row 32 , 3 extra : GaussSuppression_anySum: ..
#> row 34 , 1 extra : GaussSuppression_anySum: ....
#> row 35 , 2 extra : GaussSuppression_anySum: ..
#> row 36 , 2 extra : GaussSuppression_anySum: ..
#> row 43 , 2 extra : GaussSuppression_anySum: ...
#> row 44 , 2 extra : GaussSuppression_anySum: ...
#> 57-primary-suppressed
#> iter-1-col-62-suppressed
#> iter-1-row-71-suppressed
#>
#> col 1 , 4 extra : GaussSuppression_anySum: ....................
#> col 2 , 5 extra : GaussSuppression_anySum: .......................
#> 57-primary-suppressed
#> iter-1-col-62-suppressed
#> iter-1-row-71-suppressed
#> iter-2-col-71-suppressed
#>
#> 57-primary-suppressed
#> iter-1-col-62-suppressed
#> iter-1-row-71-suppressed
#> iter-2-col-71-suppressed
#> iter-2-row-71-suppressed
#>