The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.
Scoring now follows the ISO/IEC 25012 data quality model: five
inherent characteristics, fifteen quality properties, each measured as a
ratio A / B over counted data items in the form ISO/IEC
25024 measurement functions take. Every statistic the package computes
is unchanged; what changed is how those statistics are organised into
scores.
dg_spec() declares what the data is supposed to look
like — required columns, permitted domains, valid ranges, regular
expressions, referential sets, per-record rules, credibility criteria,
provenance and update expectations. Nine of the fifteen properties have
a denominator that counts the items for which an expectation is
defined, which no data set contains; this is where it comes from.
Every argument is optional.report$measures is a fifteen-row data frame giving each
property’s ISO code, characteristic, value, A,
B, whether it applied, and — when it did not — which
dg_spec() argument would make it apply.COMP_REG, COMP_VAL_ESP,
FAL_COMP_FICH, RIES_INCO,
CONS_FORM and CONV_ACT.
FAL_COMP_FICH catches cells that are occupied but empty
("N/A", "unknown", "-999");
CONS_FORM measures each column against its own dominant
format, excluding free text rather than scoring it near zero.report$scores now holds the five ISO characteristics —
accuracy, completeness,
consistency, credibility,
currentness — where it held four dimensions.timeliness is renamed currentness, which
is ISO’s word for it. report$timeliness still resolves and
weights still accepts the old name.accuracy is NA unless a spec
declares an interval, pattern or reference. All three ISO
accuracy properties require a declared expectation. The old
measure — outliers against an interval derived from the data — is
unchanged, reported as report$plausibility, and excluded
from the overall score, because an outlier need not be wrong and a wrong
value can sit exactly on the mean.report$missing$columns.good/warning/serious/critical
bands now break at 0.9, 0.7 and 0.5.NA and
is dropped from the aggregate rather than scored zero. NA
is a statement that B could not be counted, not a claim
about the data.summary()$scores names its first column
characteristic, not dimension, and
summary() gains a measures table.dg_assess() no longer aborts on its own default of
verbose = TRUE. Progress messages are interpolated by
cli in the frame of the caller, which was the internal
say() helper rather than dg_assess(), so every
message referring to a local variable failed.First release. Implements the data quality framework from Demirhan (2024), MSc dissertation, University of Greenwich.
dg_assess() assesses a data frame or file and returns a
dg_report object, with print(),
summary(), plot() and
as.data.frame() methods.
data_quality_assessment() is kept as an alias.data argument works. The dissertation documented it
in three places and implemented it in none.dg_plots() returns figures as a named list of ggplot
objects; dg_save_plots() writes them to disk.cli, ggplot2 and
base R. dplyr, car, moments,
reshape2, DescTools, mice and
caret are no longer needed; mice and
caret were never used by the original code at all.iris where
25% was meant.flag_redundant_columns() no longer reports the literal
strings "row" and "col" as redundant data
columns.ggplot(...) + theme_minimal() %>% print() printed the
theme and discarded the plot.moments::kurtosis()."ID" branch is reachable. A numeric column qualifies only
if its values are whole numbers, so continuous measurements are not
mistaken for keys and dropped.Regression tests cover constant columns, single-column frames,
all-NA columns, zero-row frames, perfect collinearity and
single redundant pairs — each of which produced an NA, an
error or a silently wrong answer before.
duplicated.data.frame to integer-coded row hashing: 10
million rows went from 494 s to 38 s, bit-identical result.diag(solve(cor(X))), which is
independent of row count.X = A/B
measures require metadata that zero-configuration assessment does not
have. See vignette("methodology").credibility, the fifth ISO/IEC 25012 inherent
characteristic, is not measured.accuracy score substitutes a statistically derived
interval for a specified one, so it measures plausibility rather than
accuracy in the ISO sense.O(p^3) in the column count
through the VIF matrix inversion. Fine for hundreds of columns, not for
tens of thousands.These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.