dgnpop(x = <data>,
pop = "...",
factors = c("..."),
id_vars = c("..."),
crossclassified = "...",
ratefunction = "..."
)
\(^*\) “factors” here may be better worded as “component parts”. It’s nothing to do with R’s as.factor()
standardisation:
decomposition:
hypothetical rates letting one factor move and holding others constant
comparison of hypothetical rates to determine contribution of each factor

Take-away:
neutrality: doesn’t favour one population as the standard
symmetry: order of factors doesn’t matter
\(\Delta R = \Delta A_{std} + \Delta B_{std} + \ldots + \Delta K_{std}\)
Why?
developed because we shared an office back in 2019.
implements all of Das Gupta’s 1993 manual:
We’ve been pleasantly surprised by the usage (n.b, expectations were low!)
Workflow
Decomposition tables:
Time series plots:
rate pop std.set factor
1 0.20 P1 <NA> crude
2 0.53 P2 <NA> crude
3 0.23 P1 P2 psq
4 0.47 P2 P1 psq
5 0.30 P1 P2 pgr
6 0.40 P2 P1 pgr
^ these are the rates for each population (both crude and standardised rates)
The value of the factor column denotes the part of the rate that is not held at the average.